我有一个.Net DLL,我需要从第三方应用程序调用。第三方应用程序不支持加载托管DLL,因此我使用的是c ++ / CLI DLL,它暴露了应用程序调用的本机c ++函数,如下所示。
第三方申请 - > c ++ / cli DLL - > .Net DLL
我的问题是,当我尝试从.Net dll调用函数时,我的c ++ / Cli dll因“访问冲突”错误而崩溃。如果我直接从VC ++控制台应用程序调用.Net DLL,则不会发生此问题。
当我在visual studio中使用clr选项设置为true创建c ++ / cli dll时,您认为我缺少某些依赖项吗?
我遵循了Hans Passant的建议并对其进行了调试。原来我得到的例外是“文件未找到异常”。我的方案是
第三方应用 - > c ++ / cli dll - > .Net托管DLL
将.Net托管DLL放在与第三方exe相同的文件夹中解决了问题。现在我的问题是
“我可以让C ++ / CLI dll在指定路径中查找.Net dll,而不必将.Net dll放在与第三方应用程序相同的文件夹中吗?”
由于
答案 0 :(得分:2)
你需要调试它。在“解决方案资源管理器”窗口的“属性”,“调试”中右键单击项目。将Command属性设置为要加载DLL的EXE的路径。根据需要设置命令参数和工作目录。在导出的函数上设置断点。按F5。