gibi ana giriş noktasını içeren bir kitaplık nasıl oluşturulur? SDL kendi implantasyonunda bir WinMain'e sahiptir ve SDL_main işlevini bildirir. Kullanıcı, o fonksiyonun gövdesini tanımlayabilir ve SDL kütüphanesindeki giriş noktası bu fonksiyonu çağırır.C++ içinde SDL
Aynı uygulama ile bir kitaplık uygulamak istiyorum. Peki, C++ 'da giriş noktasını içeren bir kütüphaneyi nasıl oluşturabilirim ve kullanıcıya tanımlandıktan sonra SDL'nin yaptığı gibi bir işlev prototipini veririm.
olası bir uygulaması olabilir:
Lib.hpp:
#define Main lib_main
extern int lib_main();
Lib.cpp:
#include "lib.hpp"
int main(){
// the lib code runs here
lib_main();
}
yapı Öyle gibi kullanabileceğiniz bu kitaplık sonra:
main.cpp
#include "lib.hpp"
int Main(){
// The user code
}
O komutla Lib.cpp derleme olamaz:
gr ++ -shared lib.cpp -o Lib.dll -Wl, - out-implib, libLib.a
o olsun bana lib_main() için tanımlanmamış bir başvuru.
Pencereleri kullanıyorum.
'int Main() {...}' int lib_main() olarak genişleyecektir;() {...} 'Lib.hpp – AJNeufeld
içinde '# define' öğesini güncellemek isteyebilir. Teşekkürler –
[Bir programın giriş noktasını değiştirmek] için yapı bayraklarıyla mümkündür (http: // stackoverflow.com/questions/7494244/nasıl yapılır-change-entry-point-of-c-program-with-gcc) ama kendi sorunuzu cevapladığınızdan başka. – Matt