Farklı bir uygulama için bir eklenti olan bir yerel DLL var (esas olarak sıfır denetimi sahip biri). Her şey, ek bir .lib dosyasıyla bağlantı kurabilmem (sadece benim DLL'ümü ABQSMABasCoreUtils.dll
adlı başka bir DLL'ye bağlayana kadar). Bu dosya, kullanmak istediğim ana uygulamadan bazı ek API'ler içeriyor. Dışa aktarılan işlevlerden herhangi birini kullanmak için herhangi bir kod yazmamıştım, ancak sadece bu yeni DLL'ye bağlanırken sorunlara neden oluyor. Spesifik olarak, programı çalıştırmayı denediğimde aşağıdaki hatayı alıyorum:Win32 DLL alma sorunları (DllMain)
Uygulama düzgün bir şekilde başlayamadı (0xc0000025). Uygulamayı sonlandırmak için Tamam'ı tıklayın.
Bunun tipik olarak bunun bir FALSE döndüren bir DllMain işlevi nedeniyle olduğunu bir yere okuduğuma inanıyorum.
HATA: Ayrıca aşağıdaki mesaj standart çıktıya yazılır Bellek ayırma bileşeni başlatma
önce teşebbüs ben bu hata mesajı uygulamadan gelen ve bir tür değildir neredeyse% 100 emin Windows hatası./MAP çıkan .map dosyasında bu açık ve bulunan ile
(aka her bildiğim geçiş etrafında havayı dövüyordu ve saygısız) bu biraz daha içine bakıyor ben bağlantılı:
0001:000af220 [email protected]@Z 00000001800b0220 f ABQSMABasCoreUtils_import:ABQSMABasCoreUtils.dll
0001:000af226 [email protected][email protected] 00000001800b0226 f ABQSMABasCoreUtils_import:ABQSMABasCoreUtils.dll
0001:000af22c [email protected][email protected] 00000001800b022c f ABQSMABasCoreUtils_import:ABQSMABasCoreUtils.dll
0001:000af232 [email protected]@Z 00000001800b0232 f ABQSMABasCoreUtils_import:ABQSMABasCoreUtils.dll
O undecorate olursa Ben ABQSMABasCoreUtils.dll
herhangi bir şey bu .map dosya içinde var olabilir ya da neden benim DLL bile ABQSMABasCoreUtils.dll yüklemeye çalışıyor anlamak emin değilim
void __cdecl operator delete(void * __ptr64)
void * __ptr64 __cdecl operator new(unsigned __int64)
void * __ptr64 __cdecl operator new[](unsigned __int64)
void __cdecl operator delete[](void * __ptr64)
: "undname" aşağıdaki (aynı sırada) vermek kullanarak isimler referenc herhangi bir kod yoksa bu DLL es. Bu bilgiyi bir araya getirmeme ve bunun neden işe yaramadığını öğrenmek isteyen var mı? Bunun ne anlama geldiğine göre, ana uygulama ABQSMABasCoreUtils.dll
'u içe aktardığı "dumpbin" ile doğrulandı, ne olursa olsun yükleniyor. Ben de bu DLL benim DLL'de yükleme gecikme denedim ama bu sonuçları değiştirmedi.
DÜZENLEME
Çift kontrol ettikten ve ilgili tüm dosyalar 64 bitlik vardır.
İthalat kitaplığının statik bağlantısı yerine 'LoadLibrary' kullanmayı denediniz mi? Bunu yaparsanız, ana uygulama zaten başlatılmış ve bazı avantajlarınız var. – Oleg
Bunu düşündüm ama bu kütüphaneden büyük miktarda fonksiyon kullanacağım. Her biri için GetProcAddress'i kullanmam gerekmeyecek mi? Mümkünse bundan kaçınmayı tercih ederim. – brady
C0000025 = STATUS_NONCONTINUABLE_EXCEPTION. Uygulamayı windbg'de çalıştırmayı deneyin ve nerede kilitlendiğini görün; belki bu sana bir ipucu verir. – Luke