Visual C++ ShellExecute проблемы

Я пытаюсь использовать команду 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)

а также еще одна почти идентичная ошибка для неразрешенного внешнего символа, а не неразрешенного токена. Я искал везде это, и до этого момента у меня было много ошибок, но я действительно застрял сейчас и был бы признателен за помощь в этом.

РЕДАКТИРОВАТЬ: Пожалуйста, обратите внимание, что этот код находится внутри события нажатия кнопки.

1 ответ

Решение

Вы проверили зависимость компоновщика? Попробуйте проверить, есть ли shell32.lib и другие.

Вы также можете попробовать добавить

#pragma comment(lib "shell32.lib")
Другие вопросы по тегам