我目前有一个以这种方式调用C ++ DLL函数的C ++示例:
typedef BOOL(__stdcall *f_funci)(const char*, char*);
HINSTANCE hGetProcIDDLL = LoadLibrary(L"myDLL.dll");
f_funci DoSmth= (f_funci)GetProcAddress(hGetProcIDDLL, "function");
std::string test = "The cake is a lie, it's actually a Brownie...";
char *out = new char[124];
DoSmth(&test[0], out);
和DLL函数原型:
BOOL function(const char *in, char *out){}
问题是,当我调用此DLL函数时,使用in[x]
(无论x
的值如何)(使用Visual Studio调试器),我得到的都是完全随机的结果。
但是,如果我只是将此函数粘贴到我的.cpp
中,则in[x]
始终是我期望得到的结果。
我验证了什么
我认为它可能来自什么,但对确保是/否答案了解不足:
如果有不清楚的地方,请考虑询问详细信息。
答案 0 :(得分:0)
哼...我找到了解决方案,但我不知道它怎么能解决任何问题...
我实际上只是重新编译了dll(使用相同的选项,相同的格式和内容),现在结果很好,并且运行良好。
如果有人对此有解释或线索,我就参加了。
感谢所有答复和帮助!