这段代码在Visual Studio2010 (debug/release)上工作得很好,有dll函数的返回值(ctrl+F5 gets )。
现在的问题是,当我直接从debug文件夹运行这个exe时,它没有返回值。
问题出在哪里?
typedef int (*One)(const char *);
HMODULE hModule;
One gpfSN = NULL;
int y = 0;
const char *cr = "xyz";
hModule = LoadLibrary(L"send.dll");
if (hModule != NULL)
{
gpfSN = (One)GetProcAddress(hModule, "GetData");
}
if (gpfSN != NULL)
{
CString t;
y = (*gpfSN)(cr);
t.Format(_T("%d"), y);
m_Value.SetWindowTextW(t);
}
if (hModule != NULL)
{
::FreeLibrary(hModule);
}发布于 2017-04-08 23:00:22
您应该添加一些错误报告,因为现在所有的错误都会被默默忽略。
if (hModule != NULL)
{
gpfSN = (One)GetProcAddress(hModule, "GetData");
}
else
{
auto const last_error(::GetLastError());
m_Value.SetWindowTextW(L"LoadLibrary call failed"); // TODO print error code
}https://stackoverflow.com/questions/43295588
复制相似问题