MFC'de wWinMain
, appmodul.cpp
'da tanımlanmıştır. Bu dosya görebildiğim mfc90ud.dll içine yerleşik. Ancak, uygulamamı çalıştırdığımda çağrı yığını MyApplication.exe!wWinMain
'u gösterir.'da dışa aktarılan ve uygulamanıza yerleştirilen wWinMain
işlevini nasıl aldı?MFC'nin wWinMain'i yürütülebilir dosyada nasıl olur?
cevap
Projeyi Çözüm Gezgini penceresinde, Özellikler, Bağlayıcı, Komut Satırı'nda sağ tıklatın. "Ek Seçenekler" kutusundaki/verbose yazın. Projenizi yeniden oluşturun. Çıktı penceresi artık linker'ın bir sembol bulduğu bir iz gösterir. "WinMain" için arama Bu bulmak için:
1> Searching c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\lib\mfcs90ud.lib:
1> Found [email protected]
1> Referenced in msvcrtd.lib(wcrtexew.obj)
1> Loaded mfcs90ud.lib(appmodul.obj)
Not kitaplık adı, mfcs90ud.lib statik bağlantı kütüphanesidir. Eğer "mfcs90ud.lib" için arama o zaman da bu kütüphane başvurulan işe nasıl görebilirsiniz:
1>Starting pass 1
1>Processed /DEFAULTLIB:mfc90ud.lib
1>Processed /DEFAULTLIB:mfcs90ud.lib
1>Processed /DEFAULTLIB:msvcrtd.lib
etc..
siz "MFC'ler" için MFC kaynak kodu arama yaparsanız, bu/defaultlib seçeneği enjekte var nasıl bulacaksınız . Gönderen: Bir MFC uygulaması iki kütüphaneyi birbirine bağlar. Mfc90u.lib MFC DLL sürümü için ithalat kütüphanesidir. Mfcs90u.lib, uygulamanıza bağlanan bitleri içeren statik bir bağlantı kitaplığıdır. WinMain() dahil.
Linker bütün bunları yapar. Tüm nesne dosyalarını, kütüphane dosyalarını alır ve ihtiyaç duyduğu şeyleri eşleştirir. Süslemelerle birlikte doğru bildirimlere vb. Eşleşebilir.
sihirli CWinApp en yapıcısı tarafından yapılır:
- Bu türde (çoğunlukla türetilmiş türden) bir küresel değişken bildirmek.
- CWinApp :: CWinApp, herhangi bir ana yordamından önce () çağrılır.
- Daha sonra
AfxGetApp()
tarafından döndürülen bazı veri yapısı oluşturur - oldukça karmaşık şeyler! CWinApp kurucusu tarafından veri yapısı yapılandırmasını kullanan wWinMain
çağrılır.wWinMain
den veya özelCWinApp
-çıkarılmış kurucusundan
deneyin ayıklama.
Merhaba, cevabınız için teşekkürler, ama bu aslında sorumu cevaplamadı. –
appmodul.obj dosyasının dahil edilmesi mi demek istiyorsunuz? – Ajay
Evet, MFC'nin statik bir kütüphane ve dinamik kütüphaneden oluştuğunu fark etmedim. –
- 1. Python dosyalarını ve bağımlılıkları tek bir yürütülebilir dosyada nasıl paketlenir?
- 2. Tüm asm etiketleri yürütülebilir dosyada sembol haline geliyor
- 3. ruby dosyada nasıl sıralanır
- 4. Bu yürütülebilir dosyayı nasıl otomatikleştirebilirim?
- 5. Lua'yı kullanarak nasıl yürütülebilir yapıyorum?
- 6. Windows'da python betikleri nasıl yürütülebilir?
- 7. Yürütülebilir sürüm,
- 8. Yürütülebilir tuhaf istisna ile başarısız
- 9. Yerleşik kapsayıcıyla yürütülebilir dosyalara karşı yürütülebilir dosyalar dağıtımıyla ilgili öneri
- 10. CKağıt yürütülebilir konumu
- 11. İki ikili yürütülebilir dosyayı nasıl birleştiririm?
- 12. Yerel bir yürütülebilir dosyaya nasıl köprüler yapabilirim?
- 13. System.Data.SQLite'i tek bir yürütülebilir programla nasıl birleştirebilirim?
- 14. Python kullanarak harici yürütülebilir nasıl çalıştırılır?
- 15. Qt Uygulaması için yürütülebilir dosya nasıl oluşturulur?
- 16. Satırda yürütülebilir kod bulunamadı
- 17. Ubuntu'da Yürütülebilir Cmake
- 18. Chomedriver "Sürücü yürütülebilir değil"
- 19. .NET yürütülebilir işlem
- 20. LLVM Kullanılarak Yürütülebilir Dinamik Simge Çözünürlüğü
- 21. Bir dosyada ayrıştırma
- 22. Perl, karşıya yüklenen bir dosyada move() öğesini çağırmaya çalışırsa ne olur?
- 23. Hata ayıklama yürütülebilir dosya IDA
- 24. Microsoft LogParser: Bir dosyada parametreler nasıl kullanılır?
- 25. Tornado günlükleri bir dosyada nasıl depolanır?
- 26. Ad alanı birden çok dosyada nasıl kullanılır
- 27. Bir dosyada SHA1 hashını nasıl uygularım?
- 28. Dosyada Eclipse'de .svn-base dosyaları nasıl atlanır?
- 29. hg'de bir dosyada değişiklikler nasıl kaldırılır
- 30. Bir dosyada ilk n satıra nasıl katılırım
Mükemmel, eksiksiz bir cevap için teşekkür ederim :) –
Sorunun nedeni, MFC'de ilk başlangıçların bir kısmını geçersiz kılmak istedim. İlk düşüncem WinMain'e gitmekti, ama şimdi AfxWinMain'i kullanabileceğimi biliyorum. –