【发布时间】:2014-07-31 01:24:08
【问题描述】:
我有一个可以在 Visual C++ 项目中毫无问题地使用的 DLL。当我在 Visual C# 项目中使用相同的 DLL 时,会出现问题。
对于 Visual C++ 案例,我需要做的就是将 dll 与可执行文件放在同一个文件夹中。对于 Visual C# 项目,当我尝试这样做时,我收到错误 %1 is not a valid Win32 application. 然后我尝试将 dll 作为引用添加到 Visual C# 项目中,但失败了。收到的错误是The dll could not be added. Please make sure file is accessible and it is a valid assembly or COM component.
这是因为在 Visual C++ 上工作的同一个 dll 不能在不修改的情况下用于 Visual C# 项目吗?
谢谢。我正在使用 Visual Studio 2012。
【问题讨论】:
-
您可能想了解托管代码和非托管代码之间的差异...而不是阅读 PInvoke 和“本机互操作”。比改进你的问题更清楚你想如何在 C# 项目中使用你的 C++ DLL(作为 COM 组件,通过 PInvoke,某种形式的 IPC...)
-
为什么负点和投票结束?这不是一个模糊的问题。适用于 Visual C++ 的 DLL 能否适用于 Visual C#?
-
@Alexei Levenkov:感谢您向我指出这个方向。我对你提到的那些事情了如指掌。现在将阅读它们。但这是否意味着在C#中正确调用C++ DLL可以在C#中使用?
-
即使您不知道正确的搜索字词,也最好在发布您的问题时查看相关问题(例如 stackoverflow.com/questions/21866345/…)。
标签: c# c++ visual-studio-2012 dll