Comme le titre l'indique, je ne peux pas créer une simple DLL. J'utilise VS 2017 Community Edition version 15.8.0. Voici le code .dll:
#include "stdafx.h"
#include "InvWin32App.h"
#include "$StdHdr.h"
void Prc1()
{
printf("ran procedure 1\n");
}
Voici le code de l'en-tête, selon la façon dont MS fait les choses:
#ifdef INVWIN32APP_EXPORTS
#define INVWIN32APP_API __declspec(dllexport)
#else
#define INVWIN32APP_API __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "C" {
#endif
INVWIN32APP_API void Prc1();
#ifdef __cplusplus
}
#endif
Voici le code du pilote: (Mise à jour: le programme du pilote est un programme .exe.)
#include "pch.h"
#include "InvWin32App.h"
int main()
{
Prc1();
}
Cela ne peut pas être plus simple que cela. J'obtiens la boîte de message d'erreur suivante lorsque j'essaie d'exécuter le code:
Unable to start program
program name.dll
program name.dll is not
a valid Win32 application
Je peux créer des programmes .exe bien. J'ai également eu l'erreur plus tôt ce matin lorsque j'utilisais VS 2017 version 15.7.5. La mise à niveau de VS n'a pas fait de bien. J'ai également essayé de les compiler en tant que programmes .c, mais cela n'a fait aucune différence.
J'ai eu ce problème à plusieurs reprises lors de la création de programmes .exe à l'aide de VS 2015. Je ne me souviens pas de ce que j'ai fait, mais le problème a disparu. Toute aide serait appréciée.
TIA.
Cliquez avec le bouton droit sur le projet dans votre explorateur de solution qui est le projet de l'exécutable et cliquez sur "Définir comme projet de démarrage".
Notez que "n'est pas une application Win32 valide" n'est pas une erreur de compilation ou une erreur de lien, c'est le message que vous obtenez lorsque vous essayez de déboguer quelque chose qui n'est pas exécutable.
Vous ne pouvez démarrer que des exécutables. Les exécutables consomment des DLL. Il doit s'agir de deux projets séparés avec deux ensembles de paramètres de projet correspondants.