我原先用C写了一个程序,现想用C#调用这个程序。我已经将程序转化成了DLL的形式了。一开始用普通调用不行,后面改用动态调用(LoadLibrary  GetprocAddress),同时用到了Invoke方法,但仍报“System.Reflection.TargetInvocationException调用的目标发生异常”。有哪位大神知道原因和解决的方法吗?C#DLL调用

解决方案 »

  1.   

    http://blog.csdn.net/pansiom/article/details/568096/
    我参考这个的动态调用非托管代码,基本没改动
      

  2.   

    生成的.DLL文件可以直接在引用中添加,然后用.DLL的文件名,点出DLL中封装的方法
    例如你生成的文件名称为AB.DLL, DLL中封装的方法有一个Query。那边你在你的项目中引用这个AB.DLL之后,在你的程序里面就可以用AB.Query 这个方法了。你试一下,我之前用这个方法写过。
      

  3.   

    楼主,直接用用下面这种不挺好吗?
    [DllImport("../MyLicense.dll")]
    public static extern int IsSystemValid(int nSubSystem);
      

  4.   

    直接用DllImport报错啊,system.outofmemory
      

  5.   

    自己生成的DLL好像是不能直接引用的吧,不过Query没试过,晚上试试
      

  6.   

    需求就是想用C#调用一个DLL来实现一个功能,而这个DLL我原先是用C写的