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")