我成功下载Autohotkey_H 1.1包从AutoHotkey.dll: “新CoCOMServer()” 导致异常
http://www.autohotkey.net/~HotKeyIt/AutoHotkey/files/AutoHotkey-txt.html
然后我成功注册了Win32w版本(在 “Win32w” 文件夹)中的AutoHotkey的.dll与regsvr32。
然后我启动了Visual Studio 2012,启动了一个新的Project,并成功地在项目中引用了该DLL。
该项目只以下代码:
class Program {
static void Main(string[] args) {
CoCOMServer ahkThread = new CoCOMServer();
}
}
在运行的代码,就会出现以下错误:
http://imageshack.us/f/822/pn3y.png (StackOverflowException在mscorlib.dll)
我使用Windows 7 64位。该错误发生在2台具有SAME设置的不同机器上。
有没有人成功地使用了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");
这DOES在AutoHotkey的itsself工作:
AhkCom := ComObjCreate("AutoHotkey.Script")
AhkCom.ahktextdll("MsgBox Hello World!`nExitApp")
While AhkCom.ahkReady()
Sleep, 100
MsgBox Exiting now
最后一个证明了DLL实际上正在工作。
实际上,它非常清楚地表明问题是Visual Studio特定的。到现在为止,也试过了2010年。
如果有人能告诉我我做错了什么,我会永远感激。我是否需要指定比这两行代码更多的内容?用Interop做些什么?我没有任何线索。
C#等价物将是Activator.CreateInstance(Type.GetTypeFromProgID(“AutoHotkey.Script”)); 同样的错误! – cdbeelala89
我建议你使用VB作为测试COM服务器,如果VB.Net示例不起作用,你将无法从C#连接。 C#4.0支持等效动态绑定 –
确定在VB中尝试了您的代码。同样的错误。 – cdbeelala89