Как запустить процесс с помощью .dll-файл в VC 2010

#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 ).