有两个lib中都有相同的函数名字,两个obj需要链接两个不同的lib,如何搞
有两个lib中都有相同的函数名字,两个obj需要链接两个不同的lib,怎么搞?
D3D8的,
D3D9的,
如果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的这个函数执行错误。反之亦然。
我能否指定D3D8Painter.obj去链接D3DX8.LIB,D3D9Painter.obj去链接D3DX9.LIB呢?
------解决方案--------------------
LoadLibrary() GetProcAddress()
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的这个函数执行错误。反之亦然。
我能否指定D3D8Painter.obj去链接D3DX8.LIB,D3D9Painter.obj去链接D3DX9.LIB呢?
------解决方案--------------------
LoadLibrary() GetProcAddress()