我用bcb编写了一个字符串相加函数的dll,就是输入两个字符串,返回两个字符串相加后的字符串。
extern "C" _declspec(dllexport) char* _stdcall AddString(char*,char*);
_declspec(dllexport) char* _stdcall AddString(char* chrA,char* chrB)
{
AnsiString strA,strB,strC;
char* chrC ;
strA=AnsiString(chrA);
strB=AnsiString(chrB);
strC=strA+strB;
chrC=strC.c_str() ;
return chrC;
}
按照网上多遍文档的介绍,我已经完成了该DLL的编写,并能用bcb编写的exe来调用,bcb调用一切正常。但是,当我用vb来调用时,出现这样的怪问题,如果输入参数字符串长度比较小时,返回字符串正常;如果输入参数字符串长度比较大(例如各为20个字符组成的),返回就会出错或返回空白字符。
Public Declare Function AddString Lib "mytoolbox.dll" (ByVal i As String, ByVal j As String) As String
Dim l As String
l = AddString("abcd", "ghijk")
Debug.Print l
我在网上翻遍了资料,包括msdn,但是,网上的文档只是说用visual c++编写的dll,用vb来调用的方法。没有任何的bcb写的dll,vb来调用,并且传递字符串的说明。
非常郁闷,请各位大侠帮忙解决。如方便,请贴出示范代码。非常感谢。
--------------------next---------------------
阅读(1413) | 评论(0) | 转发(0) |