ShellExecute不适用于其他计算机

时间:2016-01-21 02:53:00

标签: 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);
}

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

请您建议我如何以结构化的方式解决这个问题? 感谢。

1 个答案:

答案 0 :(得分:5)

要尝试两件事:

  • ShellExecute可能要求在某些情况下初始化COM。 docs for the ShellExecute function更详细地解释了原因。您应在之前致电CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)ShellExecute之前致电CoUninitialize()
  • 您应该使用L"open",而不是使用NULL作为动词。 NULL将始终为您提供&#34;默认&#34;对象的操作(相当于双击它)并不总是&#34;打开&#34;。