AutoHotkey.dll:";new CoCOMServer()”;导致异常
本文关键字:异常 new dll quot AutoHotkey CoCOMServer | 更新日期: 2023-09-27 18:29:42
我成功地从下载了Autohotke_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位。该错误发生在两台具有相同设置的不同机器上。
有人在Visual Studio中成功地使用了DLL吗?请给我一些提示,告诉我你做了什么不同的事情?
编辑:
此外,这在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");
这个是否在自动热键中工作:
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做点什么?我不知道。
如果你在他们的网站上看这个例子(在VB中)
Sub atest()
Dim AhkCom As Object
Set AhkCom = CreateObject("AutoHotkey.Script")
AhkCom.ahktextdll("MsgBox Hello World!" & Chr(13) & "ExitApp")
End Sub
这说明了如何连接到COM服务器。CreateObject()是的关键
要修复错误,您需要注册正确的dll,它位于多线程Dll-MD文件夹,一旦你这样做,visual basic代码就会工作我也遇到了同样的问题,解决了问题后我松了一口气,所以我很高兴帮助您