You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从C++项目中调用C# Windows Form项目的函数

C++ CLR项目调用C# WinForm DLL常见问题解答

1. CLR项目是否支持C++与C#双向互调?

支持。C++/CLI(CLR项目的实现语言)的设计目标就是打通原生C和.NET托管代码的交互链路,双向调用能力完全兼容:既支持C#调用C/CLI封装的原生函数,也支持C++/CLI项目直接调用C#的托管类与方法,C#调C++的资料更多仅因为该类需求场景更普遍,反向调用逻辑完全合法可用。

2. 是否可以直接调用C# WinForm项目生成的DLL,还是需要额外新建C#类库项目?

不需要额外新建C#类库项目。只要你的WinForm项目已配置生成DLL、且待调用的类和成员的访问修饰符为public,即可直接被CLR项目引用调用。如果待调用的逻辑和WinForm UI耦合度较高,从可维护性角度建议后续抽离为独立类库,但不抽离不影响当前功能实现。

3. CLR项目中调用C#类的配置方法

你自行找到的配置方案完全正确,完整操作步骤如下:

  • 先确认C# WinForm项目已成功生成DLL,待调用的Encrypter类及对应方法均声明为public
  • 选中CLR项目后,点击Visual Studio顶部的「项目」菜单,选择「添加引用」
  • 若两个项目在同一解决方案下,切换到「项目」标签页勾选对应C#项目即可;若为单独编译的DLL,切换到「浏览」标签页选中生成的DLL文件
  • 引用添加完成后,在C++/CLI代码头部添加using namespace 你的C#类对应的命名空间;即可正常调用对应C#类和函数,Visual Studio会正常识别相关命名空间和成员。

内容的提问来源于stack exchange,提问作者Benzine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:15:02