Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Почему ShellExecute не работает?


Автор: bosscs 20.12.2014, 03:17
Код
#include <windows.h>
    #include <ShellAPI.h>

    int main(void)
    {
    ShellExecute(0,NULL,L"file.txt",NULL,NULL,SW_SHOW);
    //ShellExecute(Handle, L"Explore", L"c:\\Program Files", NULL, NULL,SW_RESTORE);
    //ShellExecute(0, L"Explore", L"c:\\Program Files", NULL, NULL,SW_RESTORE);
    }


Не работает ни одна строка. 
В данном случае, пишет такую ошибку:  
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup  
1>C:\Users\Parents\Desktop\hide3\hide3\Debug\hide3.exe : fatal error LNK1120: 1 unresolved externals

Модератор: не забываем пользоваться кнопочкой "Код"

Автор: Vasya 20.12.2014, 12:22
ну, во-первых, файл file.txt это не исполнимый файл, а функция предназначена для запуска программ.
В закоментированных вариантах надо вместо Explore - explorer.exe.
А во-вторых, на первых порах пользуйтесь мастером при создании приложений, например, для Visual Studio File->New->Prioject-> WIn32 Console application (или еще что-то). В этом случает для линковщика необходимые библиотеки подключатся автоматически.

Автор: feodorv 21.12.2014, 06:58
Цитата(Vasya @  20.12.2014,  12:22 Найти цитируемый пост)
ну, во-первых, файл file.txt это не исполнимый файл, а функция предназначена для запуска программ.

Shell разберется, и согласно прописанным в системе ассоциациям запустит блокнот smile . И, да, проект должен быть "http://www.gamedev.ru/faq/?id=99", чтобы https://ru.wikipedia.org/wiki/%D0%A2%D0%BE%D1%87%D0%BA%D0%B0_%D0%B2%D1%85%D0%BE%D0%B4%D0%B0 служила функция main().

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)