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

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

请看这个代码:

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"); 马上试一下。成功!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有