在一些情况下需要用C#调C或者C++或者VB写的dll。一般dll实现了Com。用C#的加载dll的方式申明相同方法调用经常很难匹配参数。不同语言类型不同。
例如如下:
////// 读就诊卡 /// /// 输出结果 ///[System.Runtime.InteropServices.DllImport("DC_Reader.dll")] private static extern long iReadCardNo(IntPtr pOutInfo); /// /// 读身份证 /// /// 输出结果 ///[System.Runtime.InteropServices.DllImport("DC_Reader.dll")] private static extern long iReadIdentityCard(int itype,IntPtr pOutInfo,int iCreatPhoto=0);
所以一种比较容易的方式就是注册对方dll到Com,然后工程直接引用Com组件。
注册dll,在管理员命令行运行
regsvr32 D:SVN临时trunk1.iMedicalLIS4.CS打印打印器ReadCardbinDebugReadCard.dll
取消注册dll
regsvr32 /u D:SVN临时trunk1.iMedicalLIS4.CS打印打印器ReadCardbinDebugReadCard.dll
注册好之后就能在C#工程添加引用
然后就能和调C#dll一样调用对方dll的方法了



