我是一个新手在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