我是一個新手在c + +和創建一個DLL的C + +將從Excel VBA訪問,DLL內我有一個函數,將字符串作爲參數和修改字符串,最後修改後的字符串將在vba中使用。一個c + + dll來操縱字符串在vba中使用
以下步驟一次以上:
1.A DLL與字符串的指針作爲參數的函數。
2.vba空字符串將被傳遞給函數。
3.該DLL將修改或操縱字符串。
4.finally修改後的字符串將在vba中使用。
的dll內部的功能有些類似:
的extern 「C」 _declspec(dllexport)的空隙WINAPI ModifyStr(字符* STR) { 海峽= 「你好」 } 以下錯誤被拋出編譯器 「從字符串常量棄用轉換爲char *」
我通過寫
_declspec(dllexport)的空隙WINAPI ModifyStr(串** STR) {修改的功能* Str = new string(「hello」); } 這段代碼編譯的很好,但是當我試圖從vba調用函數時,它導致程序崩潰。請幫我擺脫這個問題,並建立我的dll沒有任何錯誤。
我無法理解 – user14297 2012-07-13 04:57:30
@ user14297傳遞給函數的字符串的類型不是char char,也不是string string,而是[BSTR](http://msdn.microsoft.com/zh-cn/我們/庫/ 1b2d7d2c-47af-4389-a6b6-b01b7e915228(VS.85)) – hansmaad 2012-07-13 10:13:02