Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
function parametre vermeden sonuçu alma
#1
İyi günler.

yazdığım dll içinde aşağıdaki  function var

function makina_kodu:Longint;
begin
 MachineModifier := ABS(CreateMachineID([midUser, midSystem, {midNetwork,} midDrives]));
 RegistrationFile := inttostr(MachineModifier)+'.lsn';
 result := MachineModifier;
end;

bu function u  proje içinden çağırmak istediğimde tanım bölümünde 
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 LisansAlFrm: TLisansAlFrm;
 function Makina_Kodu:Longint; external 'Nk_Dll.dll';
 şeklinde tanımlı

bu şekilde çağırıyorum
procedure TLisansAlFrm.FormActivate(Sender: TObject);
var
makina_ozel:longint;
begin
 makina_ozel:= Makina_Kodu;
 ShowMessage(inttostr(makina_ozel));
 end;

resimdeki hatayı alıyorum yardımcı olabilir misiniz.


Ek Dosyalar Resimler
   
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#2
Paylaştığınız DLL kodlamasındaki makina_kodu fonksiyonunun, diğer uygulamalardan çağırılabilmesi için, DLL içindeki gerekli exports satırını göremedim.
My name is nobody.
WWW
Cevapla
#3
DLL'i siz yazdığınıza göre Debug modda çalıştırıp sorun DLL'de mi yoksa uygulamada mı anlayabilirsiniz. 

[*]Kullanmaya çalıştığınız DLL'e ulaşılamadığında bu hatayı alabilirsiniz.
[*]64 bit için derlenmiş DLL'i 32 bit uygulamada kullanmaya çalıştığınızda bu hatayı alabilirsiniz. Yada tam tersi.
There's no place like 127.0.0.1
WWW
Cevapla
#4
@SimaWB'nin dediği daha doğru.Hata mesajının başlığına pek dikkat etmeden yazdım.
Muhtemelen zaten export etmişsinizdir.Aksi durumda access violation hatası alınabilirdi.
My name is nobody.
WWW
Cevapla
#5
Selam,
Hata sebebi değilde kullandığınız fonksiyon ile ilgili bi tecrubemi paylaşayım. Daha önce bu yolla makine id si oluşturup online lisanslama yapıyordum, sanırım win 10 kurulu bir makina idi, makina kodu 2-3 günde bir değişiyordu, sebebini hiç araştırmadım direk vazgeçmiştim bu olaydan.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#6
İlginiz için hepinize teşekkür ederim.
Allah c.c Razı olsun
Dün sabahtan beri yeniden yazmadığım yeri kalmamıştı.
Şu an sayın SimaWB nin yorumunu okudum yorumunda belirtiği gibi
[*]64 bit için derlenmiş DLL'i 32 bit uygulamada kullanmaya çalıştığınızda bu hatayı alabilirsiniz. Yada tam tersi.

DLL 32 bit Exe 64 bit nasıl oldu nasıl yaptım anlamadım ama sorun düzeldi.

Sayın esistem bu kodlamanın orjinal hali olan Onguard daki örnek halini uzun zamandır kullanıyorum sorun olmadı ama önerinizi dikkate alacağım inşallah.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#7
Tekrar selam,
siz {midNetwork,} iptal etmişsiniz, sanırım bende oda açık olduğu için sorun yaratmış olabilir.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  function ile fonksiyon tanımlama arsl01 3 122 08-07-2018, Saat: 12:11
Son Yorum: narkotik
  RTTI ile ortak parametre düzenleme sismik 3 172 05-07-2018, Saat: 14:48
Son Yorum: sabanakman
  [ÇÖZÜLDÜ]-Başka Uygulamadaki MDIChild Form Handle Alma hi_selamlar 9 221 29-06-2018, Saat: 09:52
Son Yorum: hi_selamlar
  [ÇÖZÜLDÜ]-cxDBPivotGrid Seçili Satır Alan Değeri Alma hi_selamlar 2 117 21-06-2018, Saat: 10:40
Son Yorum: hi_selamlar
  FormatDateTime function yhackup 3 178 26-02-2018, Saat: 15:32
Son Yorum: yhackup



Konuyu Okuyanlar: 1 Ziyaretçi