VC DLL返回字符串给VB的问题

[复制链接]
查看11 | 回复1 | 2010-9-8 01:49:06 | 显示全部楼层 |阅读模式
EXTERN_C BSTR __stdcall GetSub(LPCSTR sFile)
{
int GetCode[10][8];
char *rtnStr="AAAA";
char *str1="BBBB";
strcpy(rtnStr,str1);
return SysAllocString((BSTR)rtnStr);
}
给VB调用会出错,去掉:
char *str1="BBBB";
strcpy(rtnStr,str1);
正常返回AAAA。
请问问题出在哪里???

回复

使用道具 举报

千问 | 2010-9-8 01:49:06 | 显示全部楼层
呵呵,我是刚学C不久的,学了二个多月现在可以写简单标准的DLL给任何开发言语调用,你的问题开始我也遇到过类似的,花了我一天的时间研究及网上海掏,后来发现原来是个常识性的小问题,虽然如此,但也不是三言两语就能说得清,推荐你看这个例子:http://www.7880.com/Info/Article-573cc380.html另外,DLL函数中标准的写法最好不要用字符串方式作返回结果值,最好是用函数回调方式,看看Windows 的API都是这样写的。目前我的机器没有装VC,没法给你准确答案,也不知你报什么错有什么提示,但从你的代码中看,应该是有两种可能,一,是DLL接口与VB调用接口的约定问题,二,是目标 rtnStr 是只读问题,向只
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行