【发布时间】:2013-11-02 19:41:11
【问题描述】:
我用 c++ 在visual studio 10 中编写了我的程序,但现在我想让它的dll 与可视 c# 的界面一起使用,我在我的程序中使用命令行参数进行输入
我看到here的教程,但是我的代码没有那里那么小,我有1000行,所以我不能这样写
static __declspec(dllexport) double Add(double a, double b);
对于每一行,我也在其中使用opencv 库,那么创建 c++ 程序的 dll 的另一种方法是什么,或者我怎样才能简单地将它与 c# 接口一起使用。
【问题讨论】:
-
您要导出的每个函数都必须标记为
__declspec(dllexport)。将输出文件类型更改为 DLL。然后查看 P/Invoke 以从 C# 调用它。 -
@JonathonReinhart 我的库,如
opencv,我在程序中手动添加,自动传输到 dll,或者我需要在我的 c# 项目中重新配置它 -
只要 DLL 正确链接到 OpenCV(静态或动态),您的 C# 程序就不必了解它。
-
我有我的程序的 .exe 文件,它与
cmd一起使用,我可以使用.exe而不是dll,用于相同的目的(仅用于接口,接口是仅用于输入和输出) -
这只有在您使用 C++/CLI 编写代码或使用类型库创建 COM 组件时才容易。当然,使用 __declspec(dllexport) 并构建一个 DLL 是可行的,但它必须在 C# 程序中使用 pinvoke 调用。这需要在 C# 中编写 [DllImport] 声明,IDE 完全没有帮助。这仅适用于简单的 C 风格函数,不适用于 C++ 类。看看 C++/CLI 取得成功。
标签: c# c++ visual-studio-2010 dll interface