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
相关问答:
我在模块里自定义了一个函数:stradd()
可是在adoquery1.sql.add('select stradd(author) from book');
时提示stradd未定义...
这个问题有什么办法可以解决的吗? 非常感激!
(在A ......
假如光标在第二行开始处
其它编辑语言和文本编辑器都可以
按向前方面键
直接到达第一行的尾部
为什么DELPHI编辑器不可以呀
......
delphi 调用图形识别dll总是报地址之类的错误,请大家帮忙看看是什么问题,代码如下:
implementation
function OCR(imgname:string;i:integer):PChar;stdcall;external 'AspriseOCR.dll';
{$R *.dfm ......
dbchart中的饼形图。无法显示。下面是代码。
with adoquery2 do
begin
close;
sql.clear;
&nb ......
一味的追求功能.不注重细节......有很多用不上.总有些莫名其妙的问题.老子以后再也不用了.连个vc6都比不上.跑了两座书城.就几本.还是delphi7的书.还在最下边的角角上.
用多久了?
一天.哈哈^_^.我点烦.发泻一下. ......