易截截图软件、单文件、免安装、纯绿色、仅160KB

delphi调VC++

extern "C" __declspec(dllexport)  long __stdcall Readcard(__int16 intcom,  long baud,unsigned char *vskh, int *vlql, __int16  *vics,__int16 *viklx)
请问,这个在DELPHI里怎么定义

int *vlql, __int16  *vics,__int16 *viklx
主要是这三个该用什么类型与之对应。
我是这样定义的。
var vlql:integer;var vics,viklx:smallint
但是这样给我返回的值是有问题的。求解,谢谢各位。
function Readcard(intcom: SmallInt; baud: longint; vskh: PUCHAR; vlql: pinteger; vics: PSmallInt; viklx: PSmallInt): longint; stdcall;
external 'xxx.dll'


说错话了,PSmallInt在System中是有定义的,由于在帮助中没有搜索到还以为没有呢。
这样的话应该去掉
type
  PSmallInt=^SmallInt;
这两行,这样与1楼的定义就一致了。

楼上方法行不通啊。
使用Pinteger和Psmallint的话,直接就报内存错误。


unsigned char * 用pchar
但是int* -> var X: Integer
__int16* -> var X: SmallInt
使用这两个返回的值是错的。动态库肯定是对的。就是不知道是那个地方的参数错了。

PUCHAR = ^Byte;  //在windows有定义

你pinteger是怎么赋值的?
不行改成这样,你应该是地址没赋值对问题
function Readcard(intcom: SmallInt; baud: longint; vskh: PUCHAR; var vlql: integer; var vics: SmallInt; var viklx: SmallInt): longint; stdcall;
external 'xxx.dll'

谢谢各位已经搞定了。正确的是
var vlql:integer;var vics,viklx:smal


相关问答:

delphi编辑器怎么把光标移到上行尾

假如光标在第二行开始处
  其它编辑语言和文本编辑器都可以
  按向前方面键
      直接到达第一行的尾部
      为什么DELPHI编辑器不可以呀

  ......

delphi 取oracle系统表sys.aud$问题

手头有一个老的产品,delphi 6连接oracle,取sys.aud$系统表里面的数据

用Adoconnection+adodataset,

用system用户,Adoconnection 连接成功,但如果在adodataset里面写:

SELECT * from SYS.AUD ......

c++builder中如何调用delphi编写的函数?

请问c++builder中如何调用delphi编写的函数?

如在delphi中函数定义为 function a(s1:string, s2:string):string;
那么在c++builder程序中如何定义这一外部函数呢?
直接将pas文件加入工程,编译成功后, ......

delphi连postgresql成功,但不能增加或修改记录

环境winXP,delphi 7, postsgresql 8.4, 已安装odbc for postgresql

连接方式ado -> odbc -> postgresql

Delphi(Pascal) code:

con1.ConnectionString := 'Provider=MSDASQL.1;Extended Pr ......

delphi活该完蛋

一味的追求功能.不注重细节......有很多用不上.总有些莫名其妙的问题.老子以后再也不用了.连个vc6都比不上.跑了两座书城.就几本.还是delphi7的书.还在最下边的角角上.
用多久了?

一天.哈哈^_^.我点烦.发泻一下. ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号