可以在Visual C++;是否在Visual C#项目中使用项目? 我有一个DLL,它可以在VisualC++项目中使用,没有问题。当我在Visual C#项目中使用相同的DLL时,会出现问题 对于VisualC++的情况,我需要做的就是把DLL放在与可执行文件相同的文件夹中。对于Visual C#项目,当我尝试此操作时,出现错误%1不是有效的Win32应用程序。然后我尝试在Visual C#项目中添加dll作为引用,但失败。收到的错误是无法添加dll。请确保文件可访问并且是有效的程序集或COM组件。 这是因为Visual C++中的相同DLL不能在Visual C项目中使用而不需要修改?< /P>
谢谢。我正在使用Visual studio 2012。它可以,但有一种特殊的方法。首先,DLL必须与可执行文件(C#程序集)位于同一目录中,或者至少位于适当的DLL搜索路径中。然后,您需要使用P/Invoke(正如Alexei指出的那样)定义要对DLL进行的每个调用。下面是微软提供的关于这个主题的一个例子可以在Visual C++;是否在Visual C#项目中使用项目? 我有一个DLL,它可以在VisualC++项目中使用,没有问题。当我在Visual C#项目中使用相同的DLL时,会出现问题 对于VisualC++的情况,我需要做的就是把DLL放在与可执行文件相同的文件夹中。对于Visual C#项目,当我尝试此操作时,出现错误%1不是有效的Win32应用程序。然后我尝试在Visual C#项目中添加dll作为引用,但失败。收到的错误是无法添加dll。请确保文件可访问并且是有效的程序集或COM组件。 这是因为Visual C++中的相同DLL不能在Visual C项目中使用而不需要修改?< /P>,c#,c++,visual-studio-2012,dll,C#,C++,Visual Studio 2012,Dll,谢谢。我正在使用Visual studio 2012。它可以,但有一种特殊的方法。首先,DLL必须与可执行文件(C#程序集)位于同一目录中,或者至少位于适当的DLL搜索路径中。然后,您需要使用P/Invoke(正如Alexei指出的那样)定义要对DLL进行的每个调用。下面是微软提供的关于这个主题的一个例子 让我们假设在C++ DLL中有一个函数,它提供两个整数,将它们相加并返回结果。下面是一个调用C++ DLL中函数的短应用程序。 using System.Runtime.InteropServ
让我们假设在C++ DLL中有一个函数,它提供两个整数,将它们相加并返回结果。下面是一个调用C++ DLL中函数的短应用程序。
using System.Runtime.InteropServices;
...
public class Program
{
[DllImport("yourcppdll.dll")]
public static extern int AddNumbers(int n1, int n2);
static void Main(string[] args)
{
int result = AddNumbers(2, 2);
//result equals 4
Console.WriteLine("Result is " + result.ToString());
}
}
这是一个非常简单的例子。您可能想了解托管代码和非托管代码之间的差异。。。而不是读PInvoke和“本机互操作”。改进你的问题,以明确你想如何在C++项目中使用C++ DLL(作为COM组件,通过pNoCKE,某种形式的IPC…)为什么要关闭负点和投票?这不是一个模糊的问题。Visual C++的DLL能为Visual C++工作吗?Alexei Levenkov:谢谢你指着我这个方向。我对你提到的事情了如指掌。我现在就读。但这是否意味着C++中的C++ DLL可以在C语言中正确使用?也可以在你发布你的相关文章时检查相关问题(如),即使你不知道正确的搜索条件。