C#调用QT的dll方法.docx_第1页
C#调用QT的dll方法.docx_第2页
C#调用QT的dll方法.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#调用QT的dll方法一、 QT平台1. 建立dll工程:文件新建文件或工程其他项目C+库设置工程名字,然后一直点“下一步”即可。这样就得到包含2个头文件和一个源文件的工程,如本例子:2. 设置头文件:得到的2个头文件,一个是定义了一些宏定义,如类似本例Dlltest_global.h这样命名的头文件,这个我们一般不用修改,声明函数等操作在另外一个头文件,如本例dlltest.h。本例子头文件dlltest.h代码如下:3. 设置源文件:在头文件声明函数名后即可在源文件设置对应的函数内容,本例子源文件代码如下:4. 生成dll:生成dll只需要构建工程即可,不能运行和调试,构建后在debug或release文件夹里找到dll文件。注意:1. extern C:用于修饰函数,被extern C修饰的函数是按照C语言方式编译和连接的。2. _declspec(dllexport):将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。具体用法请浏览:遇到的问题1. 加载dll失败,找不到指定模块2. 找不到dll方法的入口点解决方法1. 用depends工具打开需调用的dll,查出缺少的依赖dll,把缺少的dll加进system32文件夹里2. 在命令行里用dumpbin/exports X.dll 显示dll方法在内存的命名,找出真实命名,在C#代码里 DllImport(vcdll.dll, EntryPoint=sum8) EntryPoint属性中输入方法名的真正命名。例子中sum方法在内存里的命名为sum8。代码示例DllTest.cs:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;namespace dllConsole public class DllTest DllImport(vcdll.dll, EntryPoint=sum8) public static extern int sum(int a, int b); Program.cs:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace dllConsole class Program static void Main(string args) int output = DllTe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论