1.dll函数的导入:
关键字:unmanaged code ; managed code;
具体应用类:System.Runtime.InteropServices
具体使用方法:
[DllImport("muParser.dll", EntryPoint = "mupSetExpr", SetLastError =
true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention =
CallingConvention.StdCall)]
public static extern void mupSetExpr(void* parser_handle, StringBuilder a_szExpr);
注意点:EntryPoint 同函数名 CharSet 注意 不要轻易使用 uncode.
函数参数 要使用指针时 应该使用 unsafe
2.函数指针的使用:
关键字:delegate
具体使用方法:
c++: typedef double (*fun_type1)(double);
c#:public delegate double fun_type1(double);
注意点:c#使用委托 方法,实现函数指针,使用时 c++中的指针去掉
参数定义很c++一样
3.定义指针值
关键字:fixed
具体使用说明:主要是想返回指针地址,c#中好像不支持 &(可能不准确)
直接给指针赋值也不行
example:
public double* AddVariable()
{
fixed ( double * ptrVar = &afValBuf )
{
return ptrVar;
}
}
说明:相关这个指针变量都要在 fixed 里面
4.关于c++函数参数是 char* 的操作
关键字:StringBuider
具体使用说明:c++中参数char*操作是 一个字节一个字节读取的,
c#中的String 是 两个字节读取的 所以不能用
所以只用StringBuilder替代
现在还没有找到更好的方法,如果有的话告之
5.关于dll的导入
如果c++中dll 不是组件形式(或者COM),那么不能直接通过.NET的reference 直接应用
我的解决方法:
应用平台:.net website
方法: 建立ClassLibrary 将要应用的dll放在bin下 然后编译工程 使用新生成的dll 就可以了
6.关于c#中使用指针:
关键字:unsafe
使用方法:在需要使用指针的地方 加 unsafe
分享到:
相关推荐
C#调用C++的函数。通过dll调用C++的加法函数,类内的减法函数。详情在我的博文里面
C#调用C++.C#调用C++.C#调用C++.C#调用C++.C#调用C++.C#调用C++.C#调用C++.C#调用C++.C#调用C++.C#调用C++.C#调用C++.
资源代码演示的是c#代码调用c++ DLL 的方式。该演示为原创,绝非搬砖。解决了c# 调用 C++ Dll获取相关信息之如何传递结构体数组引用以及如何处理获取到的结构体数组数据的问题。
1.C#调用C++封装的动态库dll 2.结构体含union共同体的C++转C#示例 3.C#结构体指针的调用演示 4.C#读取USB数据设备的示例 5.C#动态调用C++dll库示例 6.C#静态调用C++dll库示例 注意:UsbLibDotNet使用时候需要先安装...
C#调用C++ Api或接口转换工具,自动将C++ Api转换成C#中使用接口 开发C#调用C++库或者api的好助手。
c#调用c++DLL,DLL里是二维数组 ,c#里如何调用二维数组
c#调用c++ocx控件的详细代码
C#调用C++的源代码,通过C#接口调用C++库,运行环境Visual Studio 2012
C++DLL中包含一个类,C#端要调用这个类的函数,重新封装这个类,来供C#端调用
c#调用c++ dll 传参 string 崩溃的一种解决办法
附件是c#调用c++托管代码,最后调用c++ DLL代码。
C#动态调用DLL文件(有的DLL是用C++或其它语言写的不能直接调用,但可以用态调用)
C#调用C++DLL,C++DLL中的函数参数包含指针。 绝对可用。
C# 调用c++ dll 源码,里面包含c++ dll 代码 c#调用代码 供学习参考
c# 调用C++编写 的DLL函数各种参数传递问题。数据处理问题等等。
C#调用C++的调用实例,经过调试保证可以使用。
C#调用C++
当C#调用C++dll时,需要传递自定义结构的数组,该怎么办? 示例给出了方案
C#调用C++生成的DLL,并返回结构体引用或者结构体指针多个值,工程已编译好
大家可能对于C#调用C++已经比较熟悉,这个小例子是C#调用C++的含有可变参数的例子,用到了C#的一些不常用的关键字。