1

Konu: alt fonksiyonda değişen parametrik değişkenin yeni değerinin geri gelm

Arkadaşlar merhaba

Elimde bir firmaya ait, kendisi ile iletişim kurmamı sağlayan bir dll var ve bu dll üzerinde de tanımlı olan fonksiyonlar mevcut.

Bu fonsiyonlardan biri var ki parametrik olan gönderilen değişkenlerden birinin içeriğini değiştirerek geri gönderiyor. ve dolayısı ile benimde bu fonsiyonu çağırırken içeriği değiştirilecek olan değişkenin başına @ sembolü eklemem gerekiyor. Sorunum ise @ sembolü koymama rağmen ilgili değişkenin içeriği hep boş gelmesi.

dll de sorun olmadığına, vbasicte örnek yaparak emin oldum. vfox ta fonksiyonu çağırdığımda fonksiyonun yapması gerektiği işlemi yaptığını görmem ve hata kodununda 0 olarak dönmesi fonksiyonun çağırılmasında da hata olmadığını gösteriyor. Ancak parametrik olan gönderdiğim değişkenin içeriğinin değişmemesine bir anlam veremiyorum. değişkenin başına @ sembolü koymamın dışında çağırılan fonksiyonda değişen değeri çağıran yordama geri getirmenin bir yolu varmıdır ?

hatakonu=fonsiyonadi(@veri1, veri2)

2

Re: alt fonksiyonda değişen parametrik değişkenin yeni değerinin geri gelm

declare dll kisminda da referans oldugunu bellirt

3

Re: alt fonksiyonda değişen parametrik değişkenin yeni değerinin geri gelm

Merhaba Çetin bey,

dll in içinde bulunan yordam ile bir nesne tanımladığım için dll in içindeki fonksiyonları kendi kodlarımda değilde regsvr32 ile register ettirip kullanıyorum. eğer bu fonksyonları declare dll ile tanımlarsam "Class defination .... is not found" mesajı alıyorum. Sorunumda bundan dolayı olabilirmi ?

örneğimde  "UsbCommTest.dll" adlı bir dll mevcut.

bu dll i regsvr32 ile register ettirdikten sonra vfoxta "obj=CREATEOBJECT("UsbTest.GateToUsb")" ile objeyi oluşturup içindeki ilk fonksiyon olan obj.start 'ı ve sonraki diğer fonksiyonları çağırıyorum.

bu dll'i regsvr32 ile kullanmam doğru yolmudur ? yoksa bu tanımları kendi kodlarımda yazmadığım ve dolayısı ile referans olarak tanımlayamadığım içinmi sorunu yaşıyorum ?

4

Re: alt fonksiyonda değişen parametrik değişkenin yeni değerinin geri gelm

DLL deyince ben win32 DLL anlamistim, activex DLLmis. Object explorer'i kullanarak incele ve hatta obj. explorer'a kod yazdir gormek icin (bir kod penceresine interface'i cekip birakirsan o yaziyor sana).

5

Re: alt fonksiyonda değişen parametrik değişkenin yeni değerinin geri gelm

object explorerı nasıl açabilirim. menülerde sadece object browserı görebildim. ayrıca object explorerda kod yazdırmak ve interfeci çekmek derken neyi kastedtiğinizi de anlayamadım.  lütfen bu konudaki cahilliğimi mazur görün.

6

Re: alt fonksiyonda değişen parametrik değişkenin yeni değerinin geri gelm

Object browser diyecektim yanlis yazmisim. COM classini onda tanimla, treeview goreceksin, interface nodunu ac, istedigin interface'i bir kod penceresine surukle birak VFP sana yazar kodunu. Bu arada cesaretini kirmak gibi olmasin ama genelde VB ile yazilan COM dll'leri dogru yazmiyorlar ve VB'de calismasina ragmen baska yerde calismayabilir.

7

Re: alt fonksiyonda değişen parametrik değişkenin yeni değerinin geri gelm

class browserı açtığımda yukarıda component gallery, open, View additional file adında 3 adet buton görüyorum. open menüsü altından dll eklediğimde sol tarafta UsbCommTest.Dll i görüyorum. ancak ondan sonra ne yapmam gerektiğini bulamadım. bu pencereden sadece esc ile çıkabildim. oda bir işe yaramadı. ayrıca class browserda interface modunun nasıl açılacağını ne forumda, ne googleda nede vfoxun helplerinde bulamadım sad biraz daha detaylandırabilirmisiniz lütfen.

8

Re: alt fonksiyonda değişen parametrik değişkenin yeni değerinin geri gelm

Class degil object browser. Ikisi farkli seyler.

9

Re: alt fonksiyonda değişen parametrik değişkenin yeni değerinin geri gelm

object browser ile benim dll imi açtığımda içindeki tüm fonksiyonları görebildim smile sorunlu olan fonksiyonu tıkladığımda ise

"Method Status(index As Long, id As Variant, res As Variant) As Long" olarak görüyorum. id ve variant adlı değişkenler ise bana yeni içerikler ile gelmesi gerekiyor yani referans olarak tanımlanmış olmalı idiler diye düşünüyorum. dolayısı ile başlarında "@" karakteri olmaması sorunumun kaynağı olabilirmi ?

Birde regsvr32 ile değilde bu şekilde tanımlama imkanım var ise buraya eklediğim dll'i formun içine nasıl atabilirim ? object browserdaki interfaces kısmını sürükle bırak yaparsam sadece label olarak geliyor.

10

Re: alt fonksiyonda değişen parametrik değişkenin yeni değerinin geri gelm

nIndex = 1 && ne ise
id = ""
res = ""
result = myControl.Status( nIndex, @id, res)

gibi duruyor.