C#导入dll

using System.Runtime.InteropServices;   // 用 DllImport 需用此 命名空间
using System.Reflection;                // 使用 Assembly 类需用此 命名空间
using System.Reflection.Emit;           // 使用 ILGenerator 需用此 命名空间


	private IntPtr hModule = IntPtr.Zero;

	[DllImport("kernel32.dll")]
        static extern IntPtr LoadLibrary(string lpFileName);	//Loadlibrary 返回的函数库模块的句柄

	[DllImport("kernel32.dll")]
        static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);

	[DllImport("kernel32", EntryPoint = "FreeLibrary", SetLastError = true)]
        static extern bool FreeLibrary(IntPtr hModule);

	[DllImport("***.dll", CharSet = CharSet.Unicode, EntryPoint = "Init", CallingConvention = CallingConvention.Cdecl)]
        public static extern int Init(System.Int32 size);

	C++				==>				C#

	const int       						System.Int32
	int								System.Int32
	char* &								ref StringBuilder 
	double * &							[MarshalAs(UnmanagedType.LPArray, SizeConst = 1024 * 1024)] ref double[] 
	int &								ref System.Int32
	const char *							byte[] 
	double&								[MarshalAs(UnmanagedType.LPArray, SizeConst = 101)]ref double[]
posted @ 2015-07-09 15:18  慧由心生  阅读(1758)  评论(0)    收藏  举报