读书人

有两个lib中都有相同的函数名字两个

发布时间: 2013-02-24 17:58:56 作者: rapoo

有两个lib中都有相同的函数名字,两个obj需要链接两个不同的lib,怎么搞?
D3D8的,


HRESULT WINAPI
D3DXLoadSurfaceFromFileW(
LPDIRECT3DSURFACE8 pDestSurface,
CONST PALETTEENTRY* pDestPalette,
CONST RECT* pDestRect,
LPCWSTR pSrcFile,
CONST RECT* pSrcRect,
DWORD Filter,
D3DCOLOR ColorKey,
D3DXIMAGE_INFO* pSrcInfo);

D3D9的,

HRESULT WINAPI
D3DXLoadSurfaceFromFileW(
LPDIRECT3DSURFACE9 pDestSurface,
CONST PALETTEENTRY* pDestPalette,
CONST RECT* pDestRect,
LPCWSTR pSrcFile,
CONST RECT* pSrcRect,
DWORD Filter,
D3DCOLOR ColorKey,
D3DXIMAGE_INFO* pSrcInfo);


如果d3dx8.lib d3dx9.lib都去掉的话,链接错误:

1>D3D8Painter.obj : error LNK2019: unresolved external symbol _D3DXLoadSurfaceFromFileW@32 referenced in function "public: long __thiscall CD3D8Painter::Init(void *)" (?Init@CD3D8Painter@@QAEJPAX@Z)
1>D3D9Painter.obj : error LNK2001: unresolved external symbol _D3DXLoadSurfaceFromFileW@32 referenced in function "public: long __thiscall CD3D9Painter::Init(void *)" (?Init@CD3D9Painter@@QAEJPAX@Z)


可以看到,两者符号完全相同。只链接D3DX8.LIB,不链接D3DX9.LIB,可以通过编译link,但是D3D9的这个函数执行错误。反之亦然。

我能否指—3D8Painter.obj去链接D3DX8.LIB,D3D9Painter.obj去链接D3DX9.LIB呢?
[解决办法]
LoadLibrary() GetProcAddress()

读书人网 >C++

热点推荐