VC中
BSTR __declspec(dllexport) __stdcall A(LPCTSTR InStr)
{
CString Buf;
Buf = "测试用例";
return SysAllocString((BSTR)Buf.GetBuffer(0));
}VB中声明
Public Declare Function A Lib "MyDLL.DLL" (ByVal InStr As String) As String
VB中调用
Dim str1 as String
str1 = A("这个参数没有意义")
为什么出来的str1中前面为"测试用例"后面还有一大串不可显示字符或者乱码,怎么回事啊,我怎么去掉字符串的尾巴呢
BSTR __declspec(dllexport) __stdcall A(LPCTSTR InStr)
{
CString Buf;
Buf = "测试用例";
return SysAllocString((BSTR)Buf.GetBuffer(0));
}VB中声明
Public Declare Function A Lib "MyDLL.DLL" (ByVal InStr As String) As String
VB中调用
Dim str1 as String
str1 = A("这个参数没有意义")
为什么出来的str1中前面为"测试用例"后面还有一大串不可显示字符或者乱码,怎么回事啊,我怎么去掉字符串的尾巴呢
解决方案 »
- 检查路径下的文件是否存在该怎么写啊?
- vb中如何把datagrid控件里的内容,另存为excel或是word文档形式。
- 关于Listbox的滚动条的?
- 怎么判断引用无效?例如判断myFrm是否为Nothing?
- 如何实现把文件拖动到VB程序的窗口或者图标上来获得文件名呢?急问。
- Terminate经常不被执行!!
- ADO与DAO技术的区别
- win98下按画面上的“X”进程没有关掉
- 如何得到一个唯一的时间标志?在线等待,解决后马上给分。谢谢
- 想抓住全程序的所有错误。
- c语言中数据类型BOOL类型为什么对应于VB中是LONG类型?
- VB版的老大们,帮小弟看一下。还是VB调用VC DLL的问题,尝试多次无果。总是内存不能为"written"。
在vb中需要对其长度进行修改
把末尾去掉就行了
Left(String,len(String)-1)
大概就是这个意思了
不知道函数用错了没
免费的学习、交流、源码、工具下载网站,欢迎大家访问!
http://www.j2soft.cn/
{
CString Buf;
Buf = "测试用例";
return Buf.AllocSysString();
}
我现在是知道,VB的String相当于VC的BSTR类型,但是如果返回的字节数为基数个的时候,整个String后面就多了一位,目前还没有找到解决方法
CString 到Unicode 的转换由 AllocSysString 负责。