[C++] Include-Datei für yalova

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

[C++] Include-Datei für yalova

Beitrag von X0r »

Bin gerade dabei ne C++ include für meine Engine zu schreiben, allerdings bekomme ich bei der ersten Funktion bereits folgende Fehlermeldung:
Eine nicht behandelte Ausnahme des Typs "System.AccessViolationException" ist in testas.exe aufgetreten.

Zusätzliche Informationen: Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.
Hab ganz normal ne Klasse und deren Methoden private deklariert.
Das Importieren der DLL-Funktionen sieht folgendermaßen aus:

Code: Alles auswählen

__declspec(dllimport) YAL*  __stdcall yalCreateYal();
Irgendwas scheint da mit der YAL-Klasse bzw. den Signaturen schief zu laufen. Muss ich wegen den Datentypen oder so auf etwas bestimmtes achten?
Eventuell Rückgabewerte alle int?
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Die DLL wurde mit C++ oder PB geschrieben? Falls es mit PB geschrieben wurde, versuche in der C++ Klasse mal "virtual" mit stdcall.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

Die DLL wurde mit C++ oder PB geschrieben? Falls es mit PB geschrieben wurde, versuche in der C++ Klasse mal "virtual" mit stdcall.
Funktioniert leider nicht. Gleiches Problem.

Ich hab hier mal eine Test-DLL geschrieben:
http://members.forgesoft.net/Soner/housetest.zip

Hier der Source-Code:

Code: Alles auswählen

Class HOUSE
  HOUSE()
  Release()
  SetWindowNumber(num.i)
  GetWindowNumber.i()
  windows.i
EndClass

Procedure HOUSE.HOUSE()
  This->windows=2
EndProcedure

Procedure HOUSE.Release()
EndProcedure

Procedure HOUSE.SetWindowNumber(num.i)
  This->windows=num
EndProcedure

Procedure.i HOUSE.GetWindowNumber()
  ProcedureReturn This->windows
EndProcedure

ProcedureDLL CreateHOUSEObject()
  *obj.HOUSE = NewObject HOUSE()
  ProcedureReturn *obj
EndProcedure
Wäre dir sehr dankbar, wenn du mir eine funktionierende include-Datei schreiben würdest.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

Hm, funktioniert jetzt irgendwie doch. :D
Vielen Dank.
Antworten