请看这个代码:
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");
马上试一下。
成功!
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");
马上试一下。
成功!
博客主要讲述了一段C++代码编译无问题,但在VB调用时返回空值的情况。尝试为变量开辟新空间赋值未成功,最终使用_tcscpy()函数赋值解决了问题,展示了代码调试与解决问题的过程。
5470

被折叠的 条评论
为什么被折叠?



