Qt调用Delphi编写的COM组件】的更多相关文章

这个问题捣鼓了两天,现在终于解决了,做个笔记分享给大家,以免走弯路 起初,我的想法是在DLL中写一个interface并从函数中导出这个interface,像这样的代码 ICom1 = interface function Show(V1, V2: Integer): Integer stdcall; end; 最后均以失败告终,后来想到各种编译器对编译后的二进制组织方式是不同的比如上面的代码如果用Delphi编写的Exe去调用就是没问题的,而用其他语言则可能会有问题网上有很多跨语言调用方案是用…
1.前言: 最近接手了一个项目需要和Delphi语言编写的一个系统进行一些接口的对接,数据在传输过程中采用Des加密方式,因为Delphi 平台的加密方式和C#平台的加密方式不互通,所以采用的方式是C#通过调用Delphi编写好的Dll通过C#中的DllImport进行数据的加解密,其实原本是很简单的一个过程,在中间遇到了一些坑,希望能够分享这次经验,能够避免更多的人踩到这个坑: 2.后续 C#和delphi平台对接的接口 Delphi 有两个方法: Estr加密,参数1:加密参数,参数2:秘钥…
公司的业务需要,nodejs要读取文件版本号. 同事要求我用delphi编写dll,以供nodejs调用,结果通过json返回. delphi代码如下: function GetFileInfo(APath: PAnsiChar): PAnsiChar; var sPath: string; FInfoSize, Temp, Len: Cardinal; InfoBuf: Pointer; TranslationLength: Cardinal; TranslationTable: Pointe…
最近在用QT调用VC生成的库,QT使用的是MinGW调试器,出现与动态库不兼容的问题,最后发现QT只能识别VC生成的C格式下的动态库 也就是在导入导出设置时加入extern "C" .如extern "C" __declspec(dllexport),不能兼容类库.QT调用动态库时的步骤如图:1.将生成的这3个文件加入QT工程的目录下. 2.点击添加文件和添加外部库,如图   最后 include 头文件就可以使用了. 最后提醒大家:注意区分64 位和32位 以免不…
技术实现 如何逐步实现动态库的加载,类型的匹配,动态链接库函数导出的定义,参考下面宏定义即可: #define LIBEXPORT_API extern "C" __declspec(dllexport) 第一步,我先从简单的调用出发,定义了一个简单的函数,该函数仅仅实现一个整数加法求和: LIBEXPORT_API int mySum(int a,int b){ return a+b;} C# 导入定义: public class RefComm { [DllImport("…
原文:http://www.mamicode.com/info-detail-471283.html 一.使用Delphi XE2编写OCX控件 生成OCX工程: 1.File-New-Other,在New Items对话框中选择Delphi Projects-ActiveX-ActiveX Library 2.File-New-Other,在New Items对话框中选择Delphi Projects-ActiveX-ActiveX Control,这里要封Delphi的TStringGrid…
1.新建一个C#类库项目:MyCom: 2.修改 Properties 目录下的 AssemblyInfo.cs(程序集文件) 中的 ComVisible 属性为 true: 3.项目->属性->生成,勾选 “为COM互操作注册” : 4.项目->属性->签名,勾选 “为程序集签名” ,在下面的 “选择强名称秘钥文件” 下选择新建,在弹出的 窗口中的 “秘钥文件名称” 添加一个名称, 然后勾掉 “使用密码保护秘钥文件” ; 5.然后开始创建类.在创建的类上面要加上两个属性:Guid…
Delphi代码 unit UnitDll; interface uses StrUtils, SysUtils, Dialogs; function DoBusinessWide(pvData: PWideChar): PWideChar; stdcall; implementation function DoBusinessWide(pvData: PWideChar): PWideChar; stdcall; var lvData: WideString; begin ShowMessag…
Delphi代码 unit UnitDll; interface uses StrUtils, SysUtils, Dialogs; function DoBusinessAnsi(pvData: PAnsiChar): PAnsiChar; stdcall; implementation function DoBusinessAnsi(pvData: PAnsiChar): PAnsiChar; stdcall; var lvData: AnsiString; begin ShowMessag…
介绍 给大家介绍一个最新的访问本机代码的 Java 框架 —JNA . JNA(Java Native Access) 框架是一个开源的 Java 框架,是 SUN 公司主导开发的,建立在经典的 JNI 的基础之上的一个框架. JNA 项目地址: https://jna.dev.java.net/ 非常强大.易用,功能上类似与 .NET 的 P/Invoke . 不堪回首的 JNI 我们知道,使用 JNI 调用 .dll/.so 共享类库是非常非常麻烦和痛苦的. 如果有一个现有的 .dll/.s…