DLL - İpuçları
Bir DLL yazarken aşağıdaki ipuçlarını aklınızda bulundurun -
Uygun arama kuralını kullanın (C veya stdcall).
İşleve iletilen argümanların doğru sırasına dikkat edin.
Doğrudan bir işleve iletilen bağımsız değişkenleri kullanarak dizileri ASLA yeniden boyutlandırmayın veya dizeleri birleştirmeyin. Unutmayın, ilettiğiniz parametreler LabVIEW verileridir. Dizi veya dizi boyutlarının değiştirilmesi, LabVIEW belleğinde depolanan diğer verilerin üzerine yazılması nedeniyle bir çökmeye neden olabilir. Bir LabVIEW Dizi Tanıtıcısı veya LabVIEW Dize Tutamacını iletirseniz ve DLL dosyanızı derlemek için Visual C ++ derleyicisini veya Symantec derleyicisini kullanıyorsanız, dizileri yeniden boyutlandırabilir veya dizeleri birleştirebilirsiniz.
Dizeleri bir işleve geçirirken, geçirilecek doğru dize türünü seçin. C veya Pascal veya LabVIEW dize Tutacağı.
Pascal dizeleri 255 karakterle sınırlıdır.
C dizeleri BOŞ sonlandırılır. DLL işleviniz ikili dize biçiminde sayısal veriler döndürürse (örneğin, GPIB veya seri bağlantı noktası aracılığıyla), veri dizesinin bir parçası olarak NULL değerleri döndürebilir. Bu tür durumlarda, kısa (8 bit) tam sayı dizilerini geçirmek en güvenilir olanıdır.
Dizilerle veya veri dizileriyle çalışıyorsanız, bunları LabVIEW tutamaçları olarak iletmediğiniz sürece, işlev tarafından arabelleğe yerleştirilen sonuçları tutacak kadar büyük bir arabellek veya dizi geçirin; bu durumda bunları CIN kullanarak yeniden boyutlandırabilirsiniz. Visual C ++ veya Symantec derleyicisi altındaki işlevler.
_Stdcall kullanıyorsanız modül tanımlama dosyasının EXPORTS bölümünde DLL işlevlerini listeleyin.
Diğer uygulamaların modül tanımlama dosyası EXPORTS bölümünde çağırdığı DLL işlevlerini veya işlev bildirimine _declspec (dllexport) anahtar sözcüğünü içerecek şekilde listeleyin.
Bir C ++ derleyici kullanıyorsanız, adların karışmasını önlemek için üstbilgi dosyanızda extern .C. {} İfadesiyle işlevleri dışa aktarın.
Kendi DLL dosyanızı yazıyorsanız, DLL başka bir uygulama tarafından belleğe yüklenirken bir DLL dosyasını yeniden derlememelisiniz. Bir DLL'yi yeniden derlemeden önce, söz konusu DLL'yi kullanan tüm uygulamaların bellekten kaldırıldığından emin olun. DLL'nin kendisinin belleğe yüklenmemesini sağlar. Bunu unutursanız ve derleyiciniz sizi uyarmazsa, doğru şekilde yeniden inşa edemeyebilirsiniz.
İşlevin (ve DLL'nin) doğru çalıştığından emin olmak için DLL'lerinizi başka bir programla test edin. Derleyicinizin hata ayıklayıcısıyla veya bir DLL'deki bir işlevi çağırabileceğiniz basit bir C programıyla test etmek, DLL veya LabVIEW ile ilgili olası zorlukların doğasında olup olmadığını belirlemenize yardımcı olacaktır.