社区
C#
帖子详情
在c#中如何调用c代码编写的函数
amagic
2003-08-12 03:00:01
有用c编写的.h文件和.dll文件,如何在c#中调用里面的函数?
...全文
174
15
打赏
收藏
在c#中如何调用c代码编写的函数
有用c编写的.h文件和.dll文件,如何在c#中调用里面的函数?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
amagic
2003-08-16
打赏
举报
回复
up一下
virginsoldier
2003-08-16
打赏
举报
回复
[DllImport(filename, EnterPoint("FunctionName")]
public extern static result_type function ( arguments_list );
amagic
2003-08-15
打赏
举报
回复
假设我需要利用的文件是query.h和music.dll,如果我用vc写代码,我只要include query.h,并把music.dll放在当前工程的文件夹中,程序可以成功运行。但是c#无法利用.h文件,而函数都是在.h文件定义的。
于是我用vc生成一个标准动态连接库工程,在此工程中我加入music.dll,并编写了一段需要include query.h的代码,将此工程编译生成一个新的dll,命名为musicpack.dll。但是我在c#中DllImport这个musicpack.dll,试图使用query.h定义的函数时,还是不成功。
各位还有什么办法吗?
alaisalaix
2003-08-14
打赏
举报
回复
还有一种方法类似于调用windows api函数
要用到System.Runtime.InteropServices名字空间,并通过dllimport导入dll文件
alaisalaix
2003-08-14
打赏
举报
回复
你的问题涉及到.net组件与com组件的互操作问题
首先把你的com组件通过tlbimp生成ACW(包装函数,相当于com组件在.net中的代理),
然后你的.net工程就能调用com组件
com组件属于非托管的代码,而.net环境下生成的dll文件都是受.net框架托管的
要在.net环境下使用非托管的代码,必须对该代码做一个包装,使得.net能够通过
该包装托管这些非托管的代码,
这是原理,但实际使用com组件时,在.net环境下很简单,只需在工程中简单地把组件
引进来,编译时自动替你产生包装(ACW)
panyee
2003-08-14
打赏
举报
回复
http://www.csharphelp.com/archives/archive52.html
amagic
2003-08-14
打赏
举报
回复
没有人回答了吗?
amagic
2003-08-13
打赏
举报
回复
你的意思是将.h文件打包成dll,然后用c#调用?
Knight94
2003-08-13
打赏
举报
回复
如果用vc.net写的话,可以写成dll,那么c#可以引用即可。
如果其他版本c写的,可以写成标准的dll,那么c#可以用DllImport引入进行调用。
ArLi2003
2003-08-13
打赏
举报
回复
.h 不行,只能改装后放在vc7 而dll 是可以做COM 正常引用
jackyhzzjcn
2003-08-13
打赏
举报
回复
我的信誉怎么变成99了,倒
jackyhzzjcn
2003-08-13
打赏
举报
回复
dll的直接引用就可以了。
添加引用 ->
csharplove
2003-08-12
打赏
举报
回复
不懂,UP
kuangren
2003-08-12
打赏
举报
回复
帮你up
amagic
2003-08-12
打赏
举报
回复
怎么没人回啊
up一下
[科普小短文]在
C#
中
调用
C语言
函数
(静态
调用
Native DLL,Linux & Mono平台)
之前写过一篇小短文:《[科普小短文]在
C#
中
调用
C语言
函数
》,是在Windows平台下基于Microsoft.Net的一个例子。今天我们来做另外一个小例子,是在Linux平台下基于Mono的例子。关于在
C#
中
调用
C语言
函数
的具体技术P/Invoke,在之前那篇文章《[科普小短文]在
C#
中
调用
C语言
函数
》
中
有介绍,不了解的读者可以去看一下,这里不多介绍了,直接来看我们的例子。 一、准备动态
C#
调用
C语言DLL
中
函数
/导出C语言的功能
函数
接口(我的int InitDIO())
C#
项目
中
使用 using System.Runtime.InteropServices;//需要使用的组件命名空间。[DllImport("WDT_DIO64.dll")]//导出C语言的DLL文件(我的WDT_DIO64.dll)C语言
编写
代码
,主要是功能
函数
,编译成DLL文件。然后就可以在需要功能
函数
引用位置 使用功能
函数
。
c#
调用
c语言的自定义
函数
,[转]在
C#
中
调用
C语言
函数
(静态
调用
Native DLL,Windows & Microsoft.Net平台)...
对于不太了解.Net的人,如果想要了解.Net,我必须给他介绍P/Invoke。P/Invoke是什么呢?简单地说,就是在.Net
中
调用
本地
代码
(Native code)的一种解决方案。所谓“本地
代码
”是相对于托管
代码
(Managed code)来说的。P/Invoke实在是一个非常棒(awesome)的特性。本来,.Net 这项技术充分印证了托管程序(Managed program)的种种好处,...
Unity
调用
C/C++
代码
方法
一般C/C++的
代码
通过VisualStudio生成.Dll文件,然后在unity
中
通过
C#
的
代码
调用
即可。 一,创建C++的项目 选择动态链接库。输入项目名称以及保存路径之后,点击确定。 这样我们的C/C++项目就创建成功了 二,在源文件
中
创建c/c++
代码
然后我们需要在我们创建的DllForUnity.cpp
中
添加
代码
: #include "stdafx.h" ...
使用
C#
调用
C
编写
的动态库
代码
编译。
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章