关注。
对话框资源是装在在Dll的模块中吗?是不是系统误在其他的dll模块下查找你给的资源而出错呢?(我猜测可能由于是通过修改函数入口指针执行你的函数的,所以系统的机制未启用,误判了函数所在的模块?)
试试用CreateDialogIndirect,直接把资源的指针传过去。
资源指针可以用:
HGLOBAL hRes = LoadResource(hInstanceDll, MAKEINTRESOURCE(IDD_DIALOG)); //注意用包含资源的Dll模块句柄。
LPVOID lpRes = LockResource(hRes); // 就可以用作lpTemplate
取得。
是SDK吧,不然就白说了。
对话框资源是装在在Dll的模块中吗?是不是系统误在其他的dll模块下查找你给的资源而出错呢?(我猜测可能由于是通过修改函数入口指针执行你的函数的,所以系统的机制未启用,误判了函数所在的模块?)
试试用CreateDialogIndirect,直接把资源的指针传过去。
资源指针可以用:
HGLOBAL hRes = LoadResource(hInstanceDll, MAKEINTRESOURCE(IDD_DIALOG)); //注意用包含资源的Dll模块句柄。
LPVOID lpRes = LockResource(hRes); // 就可以用作lpTemplate
取得。
是SDK吧,不然就白说了。
HGLOBAL hRes = LoadResource(hInstanceDll, MAKEINTRESOURCE(IDD_DIALOG), RT_DIALOG);
对不起,写漏了。
首先谢谢In355hz的关注。我未用过CreateDialogIndirect,我会试一试的。不过在此dll总的其他函数中,我确实能弹出对话框。
自然在一起
没有用,待我试一试。