C#中如何使用头文件(xxxx.h),以及如何将头文件编译成动态链接库(DLL)
2010-05-04 00:08
603 查看
整理自:http://zhidao.baidu.com/question/125294972.html
=========================================================
Q:
一台仪器资料中提供了动态链接库和头文件,而动态链接库中没有方法,所有的可调用方法都在头文件中。我要在电脑上编一些软件控制这台仪器,而我用的是C#,好像不能直接用头文件。请问:
(1),C#中有什么办法可以使用头文件,即把头文件如何转换或是其它办法?
(2),如果是要通过把头文件编译成动态链接库,C#才可以引用,请问我应如何操作(即如何把头文件转换到动态键接库)?请尽量详细。我的开发环境是VS2008。
小小100分送给真真帮助到我的人,希望高人能帮忙。
A:
显示地使用P/Invoke吧。
通过头文件你就可以知道DLL文件里面有那些方法,然后用一个C#类重新封装他们。
[DllImport("XXX.dll", EntryPoint = "函数名称", CallingConvention = CallingConvention.StdCall)]
static extern int 函数名称(
byte[] InImage,//参数1
int x,//参数2
int y,//参数3
);
我现在就在做这种工作,也是一个DLL和几个头文件,不过我又用C++把那个DLL再封了一个层,把我上层要完成的工作用C++写出来,完了我用C#就更方便调用了。
=========================================================
Q:
一台仪器资料中提供了动态链接库和头文件,而动态链接库中没有方法,所有的可调用方法都在头文件中。我要在电脑上编一些软件控制这台仪器,而我用的是C#,好像不能直接用头文件。请问:
(1),C#中有什么办法可以使用头文件,即把头文件如何转换或是其它办法?
(2),如果是要通过把头文件编译成动态链接库,C#才可以引用,请问我应如何操作(即如何把头文件转换到动态键接库)?请尽量详细。我的开发环境是VS2008。
小小100分送给真真帮助到我的人,希望高人能帮忙。
A:
显示地使用P/Invoke吧。
通过头文件你就可以知道DLL文件里面有那些方法,然后用一个C#类重新封装他们。
[DllImport("XXX.dll", EntryPoint = "函数名称", CallingConvention = CallingConvention.StdCall)]
static extern int 函数名称(
byte[] InImage,//参数1
int x,//参数2
int y,//参数3
);
我现在就在做这种工作,也是一个DLL和几个头文件,不过我又用C++把那个DLL再封了一个层,把我上层要完成的工作用C++写出来,完了我用C#就更方便调用了。
相关文章推荐
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- 如何:创建和使用 C# DLL类库文件
- C#中如何创建、生成以及使用DLL
- 如何使用命令行编译以及运行java文件
- C#.NET常见问题(FAQ)-如何将cs文件编译成dll文件 exe文件 如何调用dll文件
- C#使用C/C++编译的动态链接库dll
- 将C语言编译成DLL并用C#进行调用以及关于从C#传输中文路径到C的DLL中打开文件的问题
- 如何编译生成dll文件以及如何调用dll文件
- 如何使用动态链接库(dll)文件
- C#.NET如何将cs文件编译成dll文件 exe文件 如何调用dll文件
- [C#]使用ILMerge来合并dll以及将dll合并进exe文件中
- 【转】C#生成dll文件:如何用C#编译生成dll文件即动态链接库文件供其它程序调用
- 用于将.cs文件 编译成dll文件(补充),如何配置在cmd中使用csc命令
- 如何在C#下生成DLL文件,以及如何在C#下调用生成的DLL文件
- c# 如何使用DLL的config文件中的信息
- 如何在C#中使用内嵌资源文件
- 如何使用Python获取某个路径下面所有文件的绝对路径以及其他操作
- 外部DLL文件在C#中导入使用问题
- 使用C#制作简单dll文件,并测试调用
- 不使用Cygwin,在eclipse中快速开发JNI,一键生成C头文件.h,以及一键使用NDK交叉编译