动态连结库调用char * 返回空的解决办法

请看这个代码:
extern "C" __declspec(dllexport) char * __stdcall getStr(char * ddd) 
{
char * ddaa="wwwwww"; return ddaa;
}
这样写,编译没有问题,但是,VB调用的时候返回的是空的。 

VB代码如下: 
Private Declare Function getStr Lib "dll2.dll" (ByVal variable As String) As String 
Private Sub Command2_Click()
MsgBox getStr("sadfsad")
End Sub

用这个试了一下: 
char * ddaa="wwwwww"; 
可能这句有问题,试试先为ddaa new一个空间,再给它赋值.

代码如下:
extern "C" __declspec(dllexport) char * __stdcall getStr(char * ddd)

char * ddaa=new char[6]; 
ddaa="wwwwww";
return ddaa;
}

还是不行!再试,用_tcscpy()赋值。
ddaa="wwwwww";
改为_tcscpy(ddaa, "wwwwww");
马上试一下。

成功!





 本文转自 useway 51CTO博客,原文链接:http://blog.51cto.com/useway/149164,如需转载请自行联系原作者


上一篇:ADO.NET:连接数据字符串


下一篇:C#语法——反射,架构师的入门基础。