【问题标题】:How to use dll created using C# in Visual C++?如何在 Visual C++ 中使用使用 C# 创建的 dll?
【发布时间】:2013-12-13 10:11:48
【问题描述】:

这是我所做的步骤。

  1. 我使用 C# 创建了一个 .dll 文件,内容为

    public static int MyFunction(int dummy)
    {
        MessageBox.Show("I am in dll");
        return 0;
    }
    
  2. 我还创建了一个 MFC 应用程序 (exe),内容为

    int main()
    {
       int a = MyFunction(0);
       return 0;
    }  
    

这是正确的通话方式吗?

注意:

我。我已将 MFC 应用程序更改为 /cl(公共语言运行时支持) ii.我还在 MFC 的参考中添加了 C# 文件。

我遇到的问题:

     Error  1   error C3861: 'MyFunction': identifier not found 
     Warning    2   warning C4793: 'MyDialog::`vcall'{132}'' : function compiled as native :    

我在MyDialog.cpp文件最后一行使用了如下命令,警告解决了。

#pragma unmanaged

现在如何解决这个错误?

【问题讨论】:

    标签: c# c++ visual-studio-2010 dll c++-cli


    【解决方案1】:

    C# 代码放在一个类中,比如MyClass。如果要在 C++/CLI 中调用该类的静态成员,则需要使用MyClass::MyFunction(0)。 最后,您需要添加命名空间:MyNamespace::MyClass::MyFunction(0)。

    【讨论】:

    • 谢谢@JeffRSon .. 它奏效了。我已经解决了这个问题。
    【解决方案2】:

    您可以使用 /clr 标志编译您的 C++ 程序,并使用 C++/CLI 简单地调用任何 .NET 代码(只要包含对它的引用)。

    您还可以为您的 C# 代码(在 DLL 中编译)使用 COM 可调用包装器 -> check this article

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多