一直在做java的BS开发,所以不太懂delphi,请教一下大家!
项目里需要做一个接口,由于要调用dll,所以只有用js调用ocx,ocx作为中间层调用接口方的dll,以前已实现过其他接口,所以方案是可行的。
这次调用的dll是api方式的(貌似是C写的),头文件如下:
typedef void (WINAPI *Callback)(char *msg); //回调函数类型
extern "C"
{
void __stdcall SetClientCallback(Callback lpCallback);
void __stdcall Request(const char* EntPara, char* RetPara, short* iRetValue);
}
接口定义:
void Request(char* EntPara[in],char* RetPara[out],Short *iRetValue[in,out])
目前静态声明,1:
procedure Dll_Request(var inPara,outPara: PChar;var retPara:array of short);stdcall;external 'miclient.dll' name 'Request';
调用
Dll_Request(inPara,outPara,retPara);
调用好像有异常目前静态声明,2:
procedure Dll_Request(var inPara,outPara: array of char;var retPara:array of short);stdcall;external 'miclient.dll' name 'Request';
调用
Dll_Request(inPara,outPara,retPara);
调用后属性未返回求教应该怎么调用才能正确
项目里需要做一个接口,由于要调用dll,所以只有用js调用ocx,ocx作为中间层调用接口方的dll,以前已实现过其他接口,所以方案是可行的。
这次调用的dll是api方式的(貌似是C写的),头文件如下:
typedef void (WINAPI *Callback)(char *msg); //回调函数类型
extern "C"
{
void __stdcall SetClientCallback(Callback lpCallback);
void __stdcall Request(const char* EntPara, char* RetPara, short* iRetValue);
}
接口定义:
void Request(char* EntPara[in],char* RetPara[out],Short *iRetValue[in,out])
目前静态声明,1:
procedure Dll_Request(var inPara,outPara: PChar;var retPara:array of short);stdcall;external 'miclient.dll' name 'Request';
调用
Dll_Request(inPara,outPara,retPara);
调用好像有异常目前静态声明,2:
procedure Dll_Request(var inPara,outPara: array of char;var retPara:array of short);stdcall;external 'miclient.dll' name 'Request';
调用
Dll_Request(inPara,outPara,retPara);
调用后属性未返回求教应该怎么调用才能正确
解决方案 »
- 请对c#程序感兴趣的大侠进来看看
- 如何通过计算机的com口向显示屏传送数据呢?
- 变量初始化的问题!:急,在线等,有答案立即结贴!
- 请问如何检测计算机中是否装有Modem,并判断是连接在哪个串口上?
- 用Delphi处理DB表的时候,怎么删除纪录?
- ========怎么实现FlashGet那样的广告条功能?=================
- 如何多个线程之间的并发处理?
- 删除注册表的傻X问题,请各位哥哥为小妹帮忙。谢谢
- delhpi 程序如何传值给fastreport中的barcode控件作为其值得到动态条形码?
- DELPHI的一个小问题
- 数据集怎么样才能过滤memo类型字段呢,求指教
- Delphi XE5运行时报错称找不到arm-linux-androideabi-ld.exe,但是文件夹里明明就有
哦 谢谢 我试试
那char* RetPara 用 PChar 还是 array of char 合适一些?
之前一个接口char*用 array of char 调用成功了
哦 谢谢 我试试
那char* RetPara 用 PChar 还是 array of char 合适一些?
之前一个接口char*用 array of char 调用成功了
array of char类型的数组名实际为指针,只要大小合适,是可以的。最好用pchar,getMem
应该是这样
Request(const EntPara: PAnsiChar; RetPara: PAnsiChar; iRetValue: PShortInt);
这里你还是用Pansichar吧.