VC写的dll,vb怎么不能调用呢?100分

raisuny 2004-03-09 10:15:30
我用vc写了一个dll,当我用vb去调用时,他没有报错,却自动的结束了这个进程。主要程序如下:
extern "C" _declspec(dllexport) BSTR __stdcall gustring (uchar *src, int srcsize)
{
unsigned char *p;
unsigned int uc;
unsigned char *dest;
int *destsize=0;
int zflag;
p = src;
p[srcsize]='\0';
for(zflag=0;zflag<srcsize;zflag++){
if (*p >= 0x30 && *p <= 0x39 ||
*p >= 0x41 && *p <= 0x5a ||
*p >= 0x61 && *p <= 0x7a ||
*p == 0x2d) {
//数字、字母处理

dest++;
p++;
*dest=*p;
(*destsize)++;
}
else if (*p >= 0x81 && *p < 0xff) {
//汉字处理
gbk_mbtowc (&uc, p, 2);
*dest++ = (u_codep)uc;
(*destsize)++;
p+=2;
}
else {//特殊字符处理
fprintf(stderr, "%04x\n", *p);
p++;
}
}
return SysAllocString((BSTR)p);
}

当我将return SysAllocString((BSTR)p); 放在dest++;和p++;之后时,是没有错误的,他能正确的输出我想得到的答案,但是当把return SysAllocString((BSTR)p); 放在*dest=*p;后边时,他就悄声无息的结束了整个vb运行程序。
我都调试了好几天了,还是没有结果,希望大家能帮我。
这个程序主要是进行中文到unicode的转换,当然如果编译的话,还需要几个头文件,如果哪位有兴趣,可以和我联系,我会提供编译需要的头文件。
QQ:228039115 E-Mail:raisuny@sina.com
...全文
25 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧