Bir dll'den bir işlevi içe aktarma sorununu anlamaya yardımcı olun - sayfa 8

 

Google'ı okudum ve görünüşe göre stdafx.h hakkında anladım :-))

M...evet... bir yüzyıl yaşa - bir yüzyıl öğren... :-)

 

Evet evet.

Oldukça sık, ilk bağlantı ihtiyacınız olan her şeyi içerir.

 

İlginç... ve Builder 6'da kimse stdafx.h dosyasına gerçekten küfretmez, yalnızca 17 uyarı vardır ve dosya 2 kat daha hafiftir.

M...evet...

Şimdi ilk bakışta 2 tane çalışan kitaplığım var :-). Verilerle çalıştıkça onları kontrol edeceğim. Gerçekten olumlu bir sonuç almayı umuyorum :-)))

 
jartmailru писал(а) >>

Mmmm ... Şey, olduğu gibi, tüm dosyaları projeye koymanız gerekiyor,

bana gönderdiğin.

.

Dürüst olmak gerekirse, bunu düşünmezdim bile.

*kütüphanede* bulunan dosya grubundan *bir dosya*,

projeye eklenmesi gerekmektedir.

H dosyaları aracılığıyla otomatik olarak bir zincire çekildiklerini düşündüm. İlk defa, sadece svd.cpp dosyasını kullanarak derledim ve bağladım, extern ekleyene kadar hiçbir hata yoktu. svd.cpp'de h dosyasına bir bağlantı vardır ve diğer h dosyalarına bağlantılar içerir ve bunlar aynı ada sahip cpp dosyalarını kullanır. Bana göründüğü gibi her şey mantıklı görünüyor. Tamamen aptal olduğumu düşünmemek için kendimi biraz haklı çıkarmak istiyorum :-)). Böyle bir görüşün sizinle ilgili olması çok yazık :-)). Şaka :-))

 
boysn >> :

H dosyaları aracılığıyla otomatik olarak bir zincire çekildiklerini düşündüm. İlk defa, sadece svd.cpp dosyasını kullanarak derledim ve bağladım, extern ekleyene kadar hiçbir hata yoktu. svd.cpp'de h dosyasına bir bağlantı vardır ve diğer h dosyalarına bağlantılar içerir ve bunlar aynı ada sahip cpp dosyalarını kullanır. Bana göründüğü gibi her şey mantıklı görünüyor. Tamamen aptal olduğumu düşünmemek için kendimi biraz haklı çıkarmak istiyorum :-)). Böyle bir görüşün sizinle ilgili olması çok yazık :-)). Şaka :-))

Böyle bir hata yapmamak için şunu bilmeniz gerekir:

* Dosyaları neden .CPP / .H olarak bölmeli?

* Bir işlev bildirimi ile bir bildirim arasındaki fark

* Satır içi / şablon anahtar kelimelere neden ihtiyaç duyulur - ne verirler

* Bir sınıf bildiriminde işlev bildirirseniz ne olur?

* Derleme ve bağlamanın amacı

* .OBJ / .LIB / .DLL / .EXE'nin farkı ve amacı

* Statik ve dinamik bağlantı

* Bağlayıcı hatası nedir = Çözülmemiş fonksiyon

* Bağlayıcı hatası nedir = Çoklu sembol

* Bağlayıcı hangi prensibe göre bir ikili dosya toplar?

* Dış kelimeye ne verir

.

Pekala, burada bir yerde.

 
jartmailru >> :
* Bir işlev bildirimi ile bir bildirim arasındaki fark.

Eh, beyan ve beyan aynıdır :).

beyan - tanım (bildirim - tanım).

 

Evet... Yanıldığımı anladım... Boşver, ders çalışırız...

Alınan dll ile ilgili olarak... Maalesef henüz beklentilerimi karşılamadı :-); Hemen, elbette, bir sonuç vermedi. Prensip olarak, hemen olsaydı çok iyi olurdu.

Ne yazık ki, mucize yok... :-)

Ona girdi olarak 3x3 kare matris vermeye çalıştım. Çıktı sonucu ne olmalı, örnekten biliyorum. Ne yazık ki, çıktı sıfırlarla tekil değerlerdir ve vektörlerden gelen çıktı matrisleri birimdir.

Onlar. bir şeyler yapılıyor gibi ama ne olduğu belli değil... Anladığım kadarıyla dll içerisine çıktı bilgisi yazmak imkansız... print("a["+i+"]", a [Ben çünkü göstermeyecek ... Bunu, bu konudaki ilk örnekle değerlendiriyorum ...

printf ("GetDoubleValue %.8lf\n",dpar alır) işlevi vardı;

Meta tüccardaki günlüklerde hiçbir bilgi görüntülenmedi, yalnızca işlevin (dönüş) döndürülen değeri görüntülendi

onlar. anladığım kadarıyla, hata ayıklayamam, değil mi? Yoksa yine bir şeyleri mahvettim mi?

Şimdi bir dll projesi değil, bir exe oluşturmaya çalışıyorum çünkü Bana EXE projelerinin hatalarını ayıklamanın daha kolay olduğunu söyledin.

Doğru, WinMain işlevi orada görünüyor ve bir nedenden dolayı projemi exe projesi için nasıl düzgün bir şekilde yerleştireceğimi hala çözemiyorum ...

Ve hala hangi çıktı işlevleriyle ve hangi araçlarla hata ayıklamanın benim için daha iyi olduğunu çözemedim ... Şimdi Arkhangelsky okuyorum ...

 
TheXpert >> :

Eh, beyan ve beyan aynı şeydir :).

beyan - tanım (beyan - tanım).

Hata için teşekkürler. İngilizce olarak biliyorum :-).

 
boysn >> :

Doğru, WinMain işlevi orada görünüyor ve bir nedenden dolayı projemi exe projesi için nasıl düzgün bir şekilde yerleştireceğimi hala çözemiyorum ...

Ve hala hangi çıktı işlevleriyle ve hangi araçlarla hata ayıklamanın benim için daha iyi olduğunu çözemedim ... Şimdi Arkhangelsky okuyorum ...

Ve yoldaş, 3'e 3 matrisiniz ve hata ayıklama çıktınızla bir test kodu yazın ve başarılı olacaksınız.

Unutulmaması gereken en önemli şey, printf() öğesinin bir *konsol* uygulaması gerektirmesidir.

 
Evet deneyeceğim...
Neden: