我以前从未发布过,所以如果我不清楚,我很抱歉。我试图在2005年使用用c ++编写的第三方DLL,而我所拥有的只是一些非常糟糕的文档。我动态链接到DLL并使用从Dependency walker读取的Ordinal值来获取指向DLL中方法的指针。如(LPFNDDLLZC)GetProcAddress(hHILCdll,(LPCSTR)15);
我的代码是用Microsoft VS 6.0编译的C ++编写的,我无法打开UNICODE定义或者我会破坏现有代码。
DLL的文档说所有的字符串参数都是pwsz,我相信这意味着指向宽字符串的指针null终止。
我试过传入一个指向unsigned short,BSTR和其他各种东西的指针,并且DLL在字符串上崩溃了。我完全迷失了为什么,我相信它与我的pwsz字符串结构有关,我迷失了如何解决这个问题。我已阅读,所以文章相关但没有任何作用。
有人可以帮忙吗?如果需要,我可以发布代码。
感谢。
答案 0 :(得分:2)
您可以使用MultiByteToWideChar将LPSTR转换为LPWSTR,以解决您的问题。
答案 1 :(得分:0)
感谢大家。我终于得到了DLL源的副本,我的问题不是我的字符串构造,这是糟糕的文档。事实证明他们正在使用双指针,修复了大量的东西!