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做点什么?我不知道。

AutoHotkey.dll:";new CoCOMServer()”;导致异常

如果你在他们的网站上看这个例子(在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代码就会工作我也遇到了同样的问题,解决了问题后我松了一口气,所以我很高兴帮助您