如何创建可在另一种语言上调用的 win32api(dll)?例子:
当我使用 ruby 时,我应该使用用 C# 或 C++ 编写的 dll。那么如何创建这样的动态库呢?
你有两种方法。
Win32API
在 Ruby 中。C++ 和 C# Dll 之间存在重要差异。
C++ 允许您公开__declspec(dllexport
可以从 ruby 调用的全局函数(使用 ))。
C# Dll 包含一个清单,可用于查找所有类型并使用来自所述 Dll 的整个对象模型。
我从来没有尝试过使用 ruby 的后者(即所有类型和类层次结构),但如果可能的话,这将是一种只能调用导出函数的首选方法。IronRuby 显然在导入 .NET 类型时没有问题。
要创建 C++ 库,请选择 Visual C++ Win32 项目,然后在随后出现的对话框中按 Next 以选中 DLL 复选框。否则选择 Visual C# 类库项目。