[英]Define mailbox to which to save an email - win32client python
[英]win32client dispatch fails in python while win32::ole new runs successfully in perl for a com dll
我有一個用C#實現的com dll,並且通過regasm注冊。 當我嘗試通過python獲取此dll的句柄時
handle = win32com.client.Dispatch('{EC456B4B-5AC4-46E8-99E8-54C193C316BC}')
要么
handle = win32com.client.Dispatch('MyCOMdll')
它失敗並顯示錯誤:(-2147221164,“類未注冊”,無,無)
雖然這在我使用的perl腳本中有效
my $handle = Win32::OLE->new('MyCOMdll');
要么
my $handle = Win32::OLE->new('{EC456B4B-5AC4-46E8-99E8-54C193C316BC}');
同時,win32com.client.Dispatch對於COM exe對象運行良好。
我將win32.comclient用於COM dll的方式正確嗎?
[更新01]
運行的Perl代碼
use Win32::OLE;
my $handle = Win32::OLE->new('MyCOMdll');
# my $handle = Win32::OLE->new('{EC456B4B-5AC4-46E8-99E8-54C193C316BC}');
my $result = Win32::OLE->LastError();
if ($result != 0)
{
print("OLE Error: ",$result,"/n");
die "";
}
else
{
print("OLE Success!!/n");
}
exit 0;
僅適用於COM exe而不適用於COM dll的Python代碼
import win32com.client
try:
handle = win32com.client.Dispatch('MyCOMdll')
# handle = win32com.client.Dispatch('{EC456B4B-5AC4-46E8-99E8-54C193C316BC}')
except Exception as ex:
handle = None
print(ex)
這是一個32位/ 64位問題。 使用32位python版本后,此問題已解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.