VC调用Delphi写的dll的一个问题的处理

      最近做一个项目,往一个Delphi写的系统中加入VC新模块.VC模块需要调用以前Delphi写的权限判别的DLL.该DLL出口函数传的参数是String型.我不清楚该类型对应VC的什么数据类型.网上查了查也没有找到有人解释.所以只好自己琢磨了.

     刚开始我用char*作为参数,结果出了内存错误.

     后来我用CString的指针和引用都能得到正确的结果,不过在函数结束后,还有内存错误.

   我分析CString 的指针和引用都能够得到正确结果,那传入char**指针应该没问题.结果一试果然成功.呵呵,原来delphi是对char指针的地址在操作.

下面列出我的调用代码:

char *pszParam1 =NULL;

char*pszParam2 = NULL;

typedef bool(PASCAL* LPGetParams)(char**,char **);

LPGetParams ProcGetParams;

HINSTANCE hDll = ::LoadLibrary(D_STR_INIDLL);

if(hDll==NULL)

.......

ProcGetParams = (LPGetParams)GetProcAddress(hDll,"ExtGetParams");

.....

bool bRetV = ProcGetParams(&pszParam1,&pszParam2);

.......

::FreeLIbrary(hDll);

还有个问题,就是Delphi分配的内存怎么释放,我还没有搞明白.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值