WinMain è una funzione che "sostituisce" il punto di ingresso principale predefinito "principale".C++: implementazione personalizzata Funzione principale
L'utente può quindi definire il suo principale punto di accesso come
int WINAPI WinMain(...) { }
Come è questo tipo di incapsulamento fatto?
Beh, molto probabilmente, ad un certo punto sembra che questo:
int main() // This must be defined somewhere in windows.h
{
return WinMain(...);
}
Domanda: Come posso realizzare una tale incapsulamento del mio, che poi chiama WinMain? Nota: La biblioteca, che ho fatto è una DLL, in modo che sarà simile a questa:
// This is the minimal code for the application which uses 'MyLibrary'
#pragma comment(lib, "MyLibrary.lib")
include "MyLibrary.h"
void Main(MyCustomParameter *params)
{
// Write user code here
}
Il problema Comunque sia, che la DLL non 'sa' la funzione Main()
e lancia quindi un 'irrisolto simbolo esterno 'errore di compilazione. Quindi come posso incapsularlo in questo modo?
Ho ancora un esterno non risolto, anche con "extern" C "'. È perché utilizzo WinMain come punto di ingresso interno anziché come main come fai tu? – bytecode77
@DevilsChild: È difficile dire cosa si fa. Se il tuo punto di ingresso è 'WinMain' - chiama il tuo main da' WinMain'. Se è solo 'main()' - chiamalo da 'main()'. Ottieni il tuo codice per compilare senza modifiche prima, poi apporta le modifiche e vedi quali interruzioni. O almeno metti un esempio completo minimale che dimostri il tuo problema ... altrimenti è difficile fare il debug di quello che stai facendo. –
Apparentemente, è un problema con la struttura di inclusione. Ho messo insieme un codice molto minimalista qui: http://dev-ch.com/files/a8dce463-65a2-54fe-ef43-c9d4160dea95/mylibrarywithcustommain.zip Quando non includo 'ExampleClass.h' funziona. – bytecode77