C++调用C#封装的dll,调用路径的问题
#using "Release\TDJDeviceDriverForVC.dll"
using namespace TDJDeviceDriverForVC;
IDCardFunctions ^idCardReader = gcnew IDCardFunctions();
//SetCurrentDirectory(_T("D:\\Driver"));
int iStatus = idCardReader->PrepareReadIDC(port);
使用这种方法调用C#的dll没有问题,但是,如何能够使用这种方法调用指定目录的C#dll比如把C#封装的dll放到"D:\\Driver"下,如何使用这种方法调用。
问题二:a.dll是C++封装,b.dll是C#封装,a.dll内部使用上面的方法调用了b.dll,先有一个应用程序调用了a.dll,如果将a.dll和b.dll都放到应用程序目录下,调用没有问题;如果将a.dll放到应用程序目录下的driver目录下调用时,b.dll必须放在应用程序目录下,而不能放在driver目录下,这个问题如何解决。
[解决办法]
问题1 把可以的c#dll换一个目录确认下是否可以成功调用,如果可以说明其他的dll也可以,
如果不可以的话,可能源码中路径处理了!
问题2 这个可能是源码里路径指定了吧!链接dll的时候路径修改能否成功调用呢?
[解决办法]
不要做A语言代码修改为B语言代码的无用功。
也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。
只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。
即可很方便地让A、B两种语言之间协调工作。