我正在尝试使用IDL in this page生成INetCfg接口的typelib,如下所示:
import "netcfgx.idl";
[
uuid(d99085ff-c5d7-4a4c-a987-91a513e268a9),
version(1.0),
helpstring("NetCfgX 1.0 Type Library")
]
library NetCFGLib
{
interface IEnumNetCfgBindingInterface;
interface IEnumNetCfgBindingPath;
interface IEnumNetCfgComponent;
interface INetCfg;
interface INetCfgProperties;
interface INetCfgLock;
interface INetCfgBindingInterface;
interface INetCfgBindingPath;
interface INetCfgComponentBindings;
interface INetCfgBindingPath;
interface INetCfgClass;
interface INetCfgComponent;
interface INetCfgIdentification;
interface INetCfgClassSetup;
};
不幸的是,生成的IDL仍然无法从comtype加载,代码如下:
import comtypes.client as cc
cc.GetModule("C:\path\to\netcfg.tlb")
它会出现此错误WindowsError: [Error -2147312566] Error loading type library/DLL
如何修复此错误? 我使用的是Windows 7 64位和Python 27 64
答案 0 :(得分:0)
当我使用Windows 7 64位时,首先运行WDK setenv.bat <path_to_wdk> x64
解决了这个问题。之后,使用midl netcfg.idl /env x64
(对于64位TLB)或midl netcfg.idl
(对于32位TLB)生成类型库。
我选择使用生成64位TLB
希望能帮助那些刚接触这个COM野兽的人!