我从
成功下载了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位。使用SAME设置在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");
这个 DOES 在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行代码?使用Interop做点什么?我不知道。
答案 0 :(得分:0)
如果你看一下他们网站上的例子(在VB中)
Sub atest()
Dim AhkCom As Object
Set AhkCom = CreateObject("AutoHotkey.Script")
AhkCom.ahktextdll("MsgBox Hello World!" & Chr(13) & "ExitApp")
End Sub
这说明了如何连接到COM服务器。 CreateObject()当然是关键
答案 1 :(得分:0)
要修复错误,您需要注册正确的dll,它位于 多线程Dll MD文件夹,一旦执行此操作,可视基本代码将起作用 我遇到了同样的问题,并为解决问题而松了一口气,所以我很高兴 帮助你