#c #file #dll #process
#c #файл #dll #процесс
Вопрос:
Я пытаюсь научиться использовать DLL-файл в C . Согласно моим исследованиям, это должно открыть notepad, когда я использую DisplayNotepad() в моем коде. Я пытаюсь его скомпилировать, но получаю ошибки компилятора, и я точно знаю, что windows.h определяет ShellExecute, но говорит, что идентификатор не найден. вот мой код:
#include "stdafx.h"
#include <windows.h>
#include <iostream>
extern "C"
{
__declspec(dllexport) void DisplayNotepad()
{
ShellExecute(NULL, "open", "c:\windows\notepad.exe", NULL,NULL, SW_SHOW);
}
}
Мой компилятор выдает мне следующую ошибку: ошибка C3861: ‘ShellExecute’: идентификатор не найден. Я делаю это совершенно неправильно? Спасибо за информацию.
Комментарии:
1. тот факт, что этот код выполняется в DLL, на самом деле не имеет значения. Давайте абстрагируемся от вашего вопроса. Вопрос касается
ShellExecute
системного вызова.
Ответ №1:
Объявление ShellExecute
находится в Shellapi.h, а не в windows.h.
Ответ №2:
Заголовки командной строки по умолчанию не включены. Всегда включайте заголовок, указанный в документации (в данном случае shellapi.h
).