Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在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 - Fatal编程技术网

可以在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 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

谢谢。我正在使用Visual studio 2012。

它可以,但有一种特殊的方法。首先,DLL必须与可执行文件(C#程序集)位于同一目录中,或者至少位于适当的DLL搜索路径中。然后,您需要使用P/Invoke(正如Alexei指出的那样)定义要对DLL进行的每个调用。下面是微软提供的关于这个主题的一个例子

让我们假设在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语言中正确使用?也可以在你发布你的相关文章时检查相关问题(如),即使你不知道正确的搜索条件。