我目前正在从MS
Windows SDK 6.1学习VSHADOW.EXE 3.0.我已经创建了一个可以编译成DLL的版本,该DLL只导出一个新编写的函数,该函数需要将命令行作为字符串,对其进行标记,然后调用旧的wmain. DLL不是COM服务器.
它在编译为EXE时与旧版本完全一样,但在编译为DLL时不能正常工作,因为此调用失败:
CoInitializeSecurity(NULL,-1,NULL,RPC_C_AUTHN_LEVEL_PKT_PRIVACY,RPC_C_IMP_LEVEL_IDENTIFY,EOAC_NONE,NULL);
失败,出现HRESULT错误0x80010119(RPC_E_TOO_LATE,必须在任何接口编组或解组之前初始化安全性.初始化后无法更改.)
我从VB6程序运行导出的函数,其中使用Declare Function vss Lib vshadow.dll导入函数….
该错误是否意味着VB6程序已经调用了CoInitializeSecurity?我能对错误做些什么?
另外,我还有另一个问题:为什么选择安全值RPC_C_AUTHN_LEVEL_PKT_PRIVACY和RPC_C_IMP_LEVEL_IDENTIFY?其他设置会产生什么影响?