btcq.net
当前位置:首页 >> DElphi如何调用C++ DLL中的结构体指针 >>

DElphi如何调用C++ DLL中的结构体指针

回头一想 这样简单点我这边使用lazarus的 公司不让装盗版 没法装delphi 不知道一样不一样function GetPacket(pPacket:PTtagPackage):integer;cdecl;external Smdll;function GetString(pStr:PChar):integer;cdecl;external Smdll;procedure TForm1.

C++中的结构体对应的应该是Delphi中的记录类型下面是转的一些资料,看你有用不 Object Pascal的指针 一、类型指针的定义.对于指向特定类型的指针,在C中是这样定义的: int *ptr; char *ptr; 与之等价的Object Pascal是如何定义的呢?

你需要先申明与C++类型的内存结构一样的Delphi类型,然后再去调用函数.

可以.如:c++ 中定义的 类型 * ,delphi中就用 var 类型.

你好!调用的时候,在代码后面加上关键字:stdcall打字不易,采纳哦!

你需要写一个Delphi版本的数据定义文件,就是把.h翻译成Delphi然后调用DLL里面的函数的时候才能把这个record类型的指针作为参数传递.你可以参照一下Delphi自带的Windows单元,那里面定义了很多Windows API中需要用的数据类型.

参数前申明var

这个问题实际上与Delphi 的语法结构有着密切的关系.因为Delphi 所使用的语言是Pascal 所以在Pascal 中结构体与C++的结构体有着很多相似的地方.因为结构体经常被看做是一种变量类型.作为一种类的变体,结构体在声明实例的时候就被构建

你传的参数类型是正确的.原因1:参数需要分配内存,但是你没有.原因2:参数值有问题.检查下函数返回值.原因3:DLL本身写得有问题.可通过调试DLL分析原因.

调用方法:1、添加引用 右击项目-添加引用-浏览 找到本地的dll文件2、using 该dll文件里面代码的名称空间 然后就可以调用dll文件里面的类(test)和方法(add)了 例如: using aa.test namespace conslole1{ class Program { static void Main(string[] args) { Test test1=new Test(); test1.add(1, 2); } }}

相关文档
pdqn.net | 9647.net | zxtw.net | mwfd.net | sgdd.net | 网站首页 | 网站地图
All rights reserved Powered by www.btcq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com