我從來沒有發佈過,所以我很抱歉,如果我不清楚。我試圖在2005年使用C++編寫的第三方DLL,我所擁有的只是一些非常差的文檔。我動態鏈接到DLL並使用從Dependency walker中讀取的Ordinal值來獲取指向DLL中某個方法的指針。如(LPFNDDLLZC)GetProcAddress(hHILCdll,(LPCSTR)15);我的代碼是用Microsoft VS 6.0編譯的C++編寫的,我不能打開UNICODE定義,或者我會打破現有的代碼。pwsz字符串混淆
DLL的文檔說所有字符串參數都是pwsz,我相信這意味着指向寬字符串的指針null終止。
我曾嘗試傳遞一個指向無符號短BSTR和其他各種東西的DLL,並在字符串上崩潰的DLL。我完全失去了爲什麼,我相信它與我的pwsz字符串結構有關,並且我失去了如何解決這個問題。我已閱讀可能有關文章,但沒有任何作品。
任何人都可以幫忙嗎?如果需要,我可以發佈代碼。
謝謝。
記錄LPFNDDLLZC聲明。 – 2010-06-28 21:01:22
我不會說匈牙利符號,那麼什麼是「pwsz」?另外,什麼是「LPFNDDLLZC」? – 2010-06-28 21:18:19
typedef long(__stdcall * LPFNDDLLZC)(long x,long y,long long z, long a,long b,long long c, long d,unsigned short * pwszmsg); LPFNDDLLZC只是我在DLL中的方法的指針名稱。 我不喜歡匈牙利符號,我以爲開發人員很久以前就停止使用它了。無論如何,他們在這裏告訴我,它的一個指向寬字符串的指針終止。 該DLL附帶沒有頭文件或.def文件,因此我將介紹我用於方法簽名的小文檔。 – 2010-06-29 12:23:24