我从 MSDN 中找到了一个 sample code,它会在用户登录时触发 notepad.exe,
但是当我尝试使用 g++ task.cpp -o task.exe -lole32 -loleaut32 -luuid
在这个代码块中
ILogonTrigger *pLogonTrigger = NULL;
hr = pTrigger->QueryInterface(
IID_ILogonTrigger, (void**) &pLogonTrigger );
pTrigger->Release();
if( FAILED(hr) )
{
printf("\nQueryInterface call failed for ILogonTrigger: %x", hr );
pRootFolder->Release();
pTask->Release();
CoUninitialize();
return 1;
}
它说 ILogonTrigger
和 IID_ILogonTrigger
未定义。我检查了我的头文件并尝试与我从其他编译器获得的交换,它变得更糟。如何编码以便我可以获得相同的用户登录触发器?
错误:
task.cpp:208:5: error: 'ILogonTrigger' was not declared in this scope
208 | ILogonTrigger *pLogonTrigger = NULL;
| ^~~~~~~~~~~~~
task.cpp:208:20: error: 'pLogonTrigger' was not declared in this scope; did you mean 'pTrigger'?
208 | ILogonTrigger *pLogonTrigger = NULL;
| ^~~~~~~~~~~~~
| pTrigger
task.cpp:210:13: error: 'IID_ILogonTrigger' was not declared in this scope; did you mean 'IID_ITaskTrigger'?
210 | IID_ILogonTrigger, (void**) &pLogonTrigger );
| ^~~~~~~~~~~~~~~~~
| IID_ITaskTrigger
这是my header file,如果它可以帮助解决问题。