# Bad dll calling convention



## Ruud (30 Januar 2007)

Hallo,
Ich habe was programiert mmit vb6 und libnodave, ich will gern ein bit setzen in die sps.
sieht so aus : res2 = daveSetBit(myDC, myArea, myAreaNumber, 1, 1, 2)

die myDC, myArea, myAreaNuber sind OK die functionieren schon wenn ich z.b. eine INT lese.

Wenn ich die funktion anrufe, kommt vb6 mit diese fehlermeldung "Bad dll calling convention". Hat jemand eine idee?

Entschuldige für mein Deutsch, komme aus Holland

gr. Ruud


----------



## Question_mark (30 Januar 2007)

*Libnodave*

Hallo Ruud,



			
				Ruud schrieb:
			
		

> Entschuldige für mein Deutsch,


Du brauchst Dich nicht zu entschuldigen, Dein Deutsch ist doch sehr gut.
Ich bin nur zu dumm, niederländisch zu sprechen...
Willkommen im Forum.

Die Deklaration von "davesetBit" hat in Version 8.02 (eine andere habe ich jetzt nicht zur Verfügung) nur 5 Übergabeparameter.

Deklaration :
daveSetBit(daveConnection * dc,int area, int DB, int byteAdr, int bitAdr);

Vieleicht ist das Dein Problem, denn das kann nicht passen :



			
				Ruud schrieb:
			
		

> sieht so aus : res2 = daveSetBit(myDC, myArea, myAreaNumber, 1, 1, 2)


Das sind dann 6 Parameter, mit Sicherheit ein Grund für "Bad Dll calling convention". Ich hoffe, das hilft Dir weiter.

Gruss

Question_mark


----------



## Ruud (31 Januar 2007)

Danke Mark,

Ich werde es gleich freitag probieren. 

gruss Ruud


----------



## Ruud (12 Februar 2007)

Hallo Mark,

Die tip hat funktioniert. Sorry für den spate reaktion. war auf eine inbetriebname.

danke!


----------



## Zottel (12 Februar 2007)

Ich sehe gerade, daß die Deklarationen für daveSetBit und daveClrBit fehlerhaft sind: streicht bitte "ByVal start as Long" in beiden Definitionen. 
Ich werde es im nächsten Release beheben.
In Zweifelsfällen ist richtig, was in nodave.h steht, denn damit wird die .dll erzeugt.


----------

