2个回答
展开全部
我把写的程式,给你分享一段。你就知道怎么C#怎么调用C++的Dll了
using System.Runtime.InteropServices;
[DllImport("fisLANTestDLL.dll", EntryPoint = "StartDB", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
extern public unsafe static int StartDB(sbyte* msg);
int StartDB(sbyte* msg);这个就是C++中Dll中的函数。
EntryPoint = "StartDB", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)只是一些设定,可要可不要
using System.Runtime.InteropServices;
[DllImport("fisLANTestDLL.dll", EntryPoint = "StartDB", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
extern public unsafe static int StartDB(sbyte* msg);
int StartDB(sbyte* msg);这个就是C++中Dll中的函数。
EntryPoint = "StartDB", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)只是一些设定,可要可不要
展开全部
调用格式如下:
[DllImport("ex.dll", EntryPoint = "method")]
public static extern void method(int a);
其中ex.dll为C++DLL名,method为函数名, 这里的int a为C++中方法的参数转换。
例:C++DLL名:Interface.dll,函数为voidCopMemFree(void *vp);
调用格式为:
[DllImport("Interface.dll", EntryPoint = "CopMemFree")]
public static extern void CopMemFree(IntPtr vp);
其实C#调用C++dll主要就是C++与C#的参数转换比较困难。
[DllImport("ex.dll", EntryPoint = "method")]
public static extern void method(int a);
其中ex.dll为C++DLL名,method为函数名, 这里的int a为C++中方法的参数转换。
例:C++DLL名:Interface.dll,函数为voidCopMemFree(void *vp);
调用格式为:
[DllImport("Interface.dll", EntryPoint = "CopMemFree")]
public static extern void CopMemFree(IntPtr vp);
其实C#调用C++dll主要就是C++与C#的参数转换比较困难。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询