通过托管代码访问非托管代码
我先说一下我的项目的思路:我是想通过托管代码访问非托管代码,首先通过类似与如下的代码编译生成托管代码的dll文件。
[DllImport("C:\\Program Files\\VNI\\imsl\\cnl600\\vc98pc\\lib\\imslcmath_dll.dll", EntryPoint = "imsl_d_lin_sol_gen",
ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
unsafe static extern double* imsl_d_lin_sol_gen(int n, double[] a, double[] b, int IMSL_RETURN_USER, double[] x, int zero);
再通过调用托管代码的dll文件来调用函数,如imsl_d_lin_sol_gen。
按这种方式我先尝试了imslcstat中不带指针的函数,因为这类不需要不安全编译,也确实成功了!后来我就开始尝试有指针的函数,对代码进行了不安全编译方面的修改,但没取得成功!我再改回来,不知是什么忘了改回来还是其它什么原因,结果以前能调用的不带指针的函数也调用不了了!
请帮我分析一下是什么原因,怎么解决,比较急,谢谢!
现在出现的错误描述是:
由通过反射调用的方法引发的异常。
无法找到DLL导入中指定的DLL时引发的异常。
我的理解是无法从托管文件访问托管文件中指定的DLL文件,而那个文件在指定的位置确实是存在的,就不知是什么原因了?
注:那个软件的授权没有问题!