gpt4 book ai didi

c++ - 使用 C++ 显式加载加载 dll

转载 作者:太空宇宙 更新时间:2023-11-04 12:12:21 28 4
gpt4 key购买 nike

我正在显式调用一个 dll,并且一切正常......问题是当我从我正在加载 de dll 的函数返回一个值(释放它)时,程序停止(看起来像).. . 好像有什么东西不让程序继续进行...

我的代码:

xfsManager::StartUp(...)
{
WORD result=0;

HINSTANCE hGetProcIDDLL = LoadLibrary("c:\\emvlib\\I_krnfct.dll");
FARPROC lpfnGetProcessID = GetProcAddress(HMODULE (hGetProcIDDLL),EMV_KERNEL_INITIALIZATION);

typedef DWORD (__stdcall * pICFUNC)(LPSTR);

pICFUNC dllFunction;

dllFunction = pICFUNC(lpfnGetProcessID);

DWORD sTmpRc = 0;
sTmpRc = dllFunction("something");
if(sTmpRc != EMV_OK)
{
//NOT OK
}
else
{
//OK
}
FreeLibrary(hGetProcIDDLL);

return XFS_OK; // EXITING
/*-----------------------------*/
}

非常感谢您的帮助。

克里斯托沃桑托斯

最佳答案

您没有检查 LoadLibrary()GetProcAddress() 的返回值 - 这些是否有效?

可能是你的 DLL 名称/路径或导出的函数名称有误。请记住,stdcall 函数通常有一个“@nn”后缀,对应于参数列表的大小。但这并不总是正确的。

关于c++ - 使用 C++ 显式加载加载 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9316555/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com