为什么COM CoInitializeSecurity在我的DLL中失败?
|
我目前正在从MS Windows SDK 6.1学习VSHADOW.EXE 3.0。我已经制作了一个可以编译为DLL的版本,该DLL仅导出一个新编写的函数,该函数期望命令行为字符串,将其标记化,然后调用旧的
wmain
。 DLL不是COM服务器。
当编译为EXE时,它的工作原理与旧版本完全相同,但是当编译为DLL时,它却无法正常工作,因为此调用失败:
CoInitializeSecurity(NULL, -1, NULL, NULL,
RPC_C_AUTHN_LEVEL_PKT_PRIVACY,
RPC_C_IMP_LEVEL_IDENTIFY,
NULL, EOAC_NONE, NULL);
失败,并显示HRESULT
错误0x80010119
(RPC_E_TOO_LATE
,必须对安全性进行初始化,然后才能对任何接口进行编组或取消编组。初始化后就无法更改。)
我从VB6程序运行导出的函数,该函数使用Declare Function vss Lib vshadow.dll ...
导入。
该错误是否表示VB6程序已调用ѭ6?我该如何处理错误?
另外,我还有一个问题:为什么要精确选择安全值RPC_C_AUTHN_LEVEL_PKT_PRIVACY
和RPC_C_IMP_LEVEL_IDENTIFY
?其他设置会有什么影响?
没有找到相关结果
已邀请:
1 个回复
磐乓铝举