【发布时间】:2013-01-16 19:43:59
【问题描述】:
我正在尝试制作我的第一个 c# dll。 我希望能够使用 win32API 从 ruby 调用它的方法/函数。 我已经制作了这个 dll:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ClassLibrary1
{
public class Class1
{
public int PropA = 10;
public void Multiply(Int32 myFactor)
{
PropA *= myFactor;
}
}
}
我用 Visual Studio 2010 编译它并获得了我的 ClassLibrary1.dll 文件。
现在对于红宝石部分,我尝试了这个:
f = "c:/path_to_file/ClassLibrary1.dll"
mult = Win32API.new(f,"Multiply",["I"],"I")
但是,我收到以下错误:
Error: #<RuntimeError: (eval):0:in `initialize': GetProcAddress: Multiply or MultiplyA
说实话,我从来没有创建过 dll,也没有使用 c# 的经验。我只是想开始。我之前通过 win32API 在 Ruby 中使用过很多 dll(主要是 user32)。
我猜我的 dll 不正常?
问候,
【问题讨论】:
-
侧边栏:dllexport 是在 windows 的早期 C/pascal 时代构思的目录机制。它的使用方法的完整描述在这里:msdn.microsoft.com/en-us/library/z4zxe9k8%28v=vs.110%29.aspx