您的位置:首页 > 编程语言 > Delphi

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

2007-02-03 12:59 519 查看
最近做一个项目,往一个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分配的内存怎么释放,我还没有搞明白.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: