我正在尝试编译this vs2010 solution并将其更新为VS2013,但在编译时会引发以下错误:
LNK2019: Unresolved external symbol "struct HWND__ * __cdecl DwmaxxRpcWindow(void)" (?DwmaxxRpcWindow@@YAPEAUHWND__@@XZ) referenced in function "long __cdecl InitDevice(void)" (?InitDevice@@YAJXZ)
该解决方案分为5个项目:两个DLL(x86和x64),一个主DLL,一个Loader项目(用于加载任何dll)和一个Test项目,用于测试DLL的功能。 实际上,我尝试链接该项目所需的所有LIB以及DLL,并且可以使某些项目进行编译,但没有测试项目,这会引发上述错误。 另外,我已经联系了项目的开发人员,他告诉我,我只需要编译dll即可正常工作。
DwmaxxRpcWnd的定义是这样:
HWND DwmaxxRpcWindow()
{
return (FindWindowEx(HWND_MESSAGE, NULL, DWMAXX_RPC_WINDOW_CLASS, NULL));
}
DWMAXX_RPC_WINDOW_CLASS由
定义#define DWMAXX_RPC_WINDOW_CLASS ("DwmaxxRPCEndpoint")
有问题的功能部分是
HANDLE hTmp = (HANDLE)SendMessage(DwmaxxRpcWindow(), DWMAXX_GET_SHARED_HANDLE, (WPARAM)win, NULL);
DWMAXX_GET_SHARED_HANDLE代表
#define DWMAXX_GET_SHARED_HANDLE (WM_APP + 1)
“ win”变量是窗口的HWND。
该函数(如图所示)应返回一个句柄值。 但是,我什至无法编译该项目。 该项目本身就是要使用一些挂钩从DWM中将共享的D3D纹理获取到窗口,我计划将这个项目的各个部分用于我自己的
。