我成功下载了 Autohotkey_H 1.1 包
http://www.autohotkey.net/~HotKeyIt/AutoHotkey/files/AutoHotkey-txt.html
然后,我成功地使用 regsvr32 注册了 AutoHotkey.dll 的 Win32w 版本(在“Win32w”文件夹中)。
然后我启动了Visual Studio 2012,启动了一个新项目并成功引用了项目中的DLL。
该项目只有以下代码:
class Program {
static void Main(string[] args) {
CoCOMServer ahkThread = new CoCOMServer();
}
}
运行代码时,出现以下错误:
http://imageshack.us/f/822/pn3y.png(mscorlib.dll 中的 StackOverflowException)
我正在使用 Windows 7 64 位。该错误发生在具有相同设置的 2 台不同机器上。
有没有人成功地将 DLL 与 Visual Studio 一起使用,并给我一些提示,告诉我你做了什么不同的事情?
编辑:
此外,这在 VB 中不起作用:
Sub atest()
Dim AhkCom As Object
Set AhkCom = CreateObject("AutoHotkey.Script")
AhkCom.ahktextdll("MsgBox Hello World!" & Chr(13) & "ExitApp")
End Sub
并且neiter这样做:
dynamic ahk = Activator.CreateInstance(Type.GetTypeFromProgID("AutoHotkey.Script.UNICODE"));
ahk.ahktextdll("msgbox hello world");
这确实适用于 Autohotkey 本身:
AhkCom := ComObjCreate("AutoHotkey.Script")
AhkCom.ahktextdll("MsgBox Hello World!`nExitApp")
While AhkCom.ahkReady()
Sleep, 100
MsgBox Exiting now
最后一个证明 DLL 实际上是可以工作的。
事实上,它非常清楚地表明问题是特定于 Visual Studio 的。现在也尝试了2010年。
如果有人能告诉我我做错了什么,我将永远感激不尽。我是否需要指定超过 2-4 行代码?用互操作做点什么?我没有任何线索。