Visual C++ ShellExecute problems

Visual C++ ShellExecute problems

本文关键字:problems ShellExecute C++ Visual      更新时间:2023-10-16

我正在尝试使用 shellexecute 命令在 visual c++ 中打开一个文件,我包含了以下头文件:

#include "Windows.h"
#include <shellapi.h>
#include <tchar.h>

以下是我用于我的 shellexecute 的内容:

ShellExecute(NULL, _T("Open"), _T("C:\Program Files\My Prgram\test1.pdf"), 
    NULL, NULL, SW_SHOWNORMAL);

但是,当我运行它时,我收到以下错误:

1>test1.obj : error LNK2028: unresolved token (0A000011) "extern "C" struct HINSTANCE__ * __stdcall ShellExecuteW(struct HWND__ *,wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *,int)" (?ShellExecuteW@@$$J224YGPAUHINSTANCE__@@PAUHWND__@@PB_W111H@Z) referenced in function "private: void __clrcall test1::Form1::button1_Click(class System::Object ^,class System::EventArgs ^)" (?button1_Click@Form1@test1@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z)

以及未解析的外部符号而不是未解析的令牌的另一个几乎相同的错误。我已经到处搜索过这个,到目前为止已经有很多错误,但现在我真的很困,希望得到一些帮助。

编辑:请注意,此代码放置在按钮单击事件中。

您是否检查了链接器依赖项?尝试检查是否有 shell32.lib 和其他

您也可以尝试添加

#pragma comment(lib "shell32.lib")