c# - 如何在 Visual C++ 中使用使用 C# 创建的 dll?

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

这是我完成的步骤。

  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(公共(public)语言运行时支持) 二.我还在 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# 代码放在一个类中,比如 MyClass。如果要在 C++/CLI 中调用此类的静态成员,则需要使用 MyClass::MyFunction(0)。 最后,您需要添加命名空间:MyNamespace::MyClass::MyFunction(0)

关于c# - 如何在 Visual C++ 中使用使用 C# 创建的 dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20563853/

相关文章:

c# - 在不同的 CPU 优先级上运行我的部分应用程序

每次计时器刷新后,C# 列表框选择的索引重置为 0

c# - Windows 服务中的文件观察器

c++ - 为什么我总是必须除以 49 才能得到二进制转换器 + cout 歧义的正确答案?

c++ - 定义 main 时 MSVS2010 中的 LNK1561 链接错误

wpf - xmlns 无法引用 XAML 中的其他项目

c# - FORWARD_NULL 在取消引用 null 之后?

c++ - 在 std::move'ing 时警告调用复制构造函数

c++ - 模板推导和 decltype(T) 如何作用于引用?

c++ - 我可以告诉VC201 0 auto 增加预编译头分配(同/Zm)而不是获取c3859吗?