ShellExecute不适用于其他计算机

-1 c++ winapi release shellexecute

我使用Win32Api制作了一个程序.在程序中,它具有"ShellExecute"短语,以便执行chrome进行搜索.以下是我写的内容的抽象.

#include <windows.h>
#include <shellapi.h>
int main () {
    ShellExecute(NULL, L"open", searching_url, NULL, NULL, SW_SHOWMAXIMIZED);
}
Run Code Online (Sandbox Code Playgroud)

它适用于我的电脑.但是,我把这个Windows应用程序发送给其他人,他们说它不起作用.我的意思是只有shellexecute不起作用.我无法抓住从哪里开始弄清楚这里有什么问题.

你能否建议我如何以结构化的方式解决这个问题?谢谢.

Jon*_*ter 5

要尝试两件事:

  • ShellExecute可以要求在某些情况下初始化COM.该函数文档ShellExecute更详细地解释了为什么.您应该在致电CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)之前ShellExecuteCoUninitialize()之后致电.
  • L"open"你应该通常使用而不是用作动词NULL.NULL将始终为您提供对象(相当于双击它)的"默认"操作,该操作并非总是"打开".