已知c++builder中的dll的定义如下:
typedef struct {
char as_etc1[16];
char as_etc2[16];
char as_etc3[16];
char as_etc4[24];
} DATA; extern "C" {
long WINAPI C_get(char* as_etcStop, DATA *pp);
}
说明:给C_get传值当as_etcStop是1是开始执行操作,操作完成后把值返回给pp,请问在delphi中怎样声明pp,怎样调用??给如何处理??急盼!!
typedef struct {
char as_etc1[16];
char as_etc2[16];
char as_etc3[16];
char as_etc4[24];
} DATA; extern "C" {
long WINAPI C_get(char* as_etcStop, DATA *pp);
}
说明:给C_get传值当as_etcStop是1是开始执行操作,操作完成后把值返回给pp,请问在delphi中怎样声明pp,怎样调用??给如何处理??急盼!!
解决方案 »
- Application.ShowMainForm:=false;主窗体不能隐藏?why?
- html help workshop怎样做帮助文档?
- C/S 数据传送问题
- 哪有用Delphi开发可视化设计器的文章?谢了
- 有没有做过截取网络数据包的程序高手,有钱赚!高手请进。
- 在WebSnap技术中,我制作了一个按纽,使它没按一次,数据记录指针向下跳一下,可我的按纽却无论按多少下,就是第二条记录,请高手帮忙。
- 如何将一个工具条嵌到IE中。
- 一个单线程可以同时用吗?
- 关于WWDBGRID、WWTABLE、QUERY的问题。请问如何在WWTABLE中使用QUERY,同时实现在WWDBGRID中修改数据。
- 用Resource Workshop编辑图象资源最高只能到256色,还能再高吗?
- listview的失焦问题。
- 难道没有懂pascal的人了吗 Delphi指针的问题
PData = ^TData;
TData = record
as_etc1: array [0..15] of Char;
as_etc2: array [0..15] of Char;
as_etc3: array [0..15] of Char;
as_etc4: array [0..23] of Char;
end;function C_Get(as_etcStop: PChar; pp: PData): DWORD; stdcall;
应该将record 换成packed record
这样才能和C的数据格式正常交换
还要注意Delphi是按址传送还是按值传送的pp
在C++中注意定义和使用的准确