Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
NiceOliver
Anmeldungsdatum: 24.08.2006 Beiträge: 3
|
Verfasst am: 02.08.2007, 01:02 Titel: FreeBasic DLL unter C# nutzen |
|
|
Hallo Leute,
ich würde gerne ein mit FB erstellte DLL in Visual C# 2005 nutzen. Unter Visual Basic funktioniert das ja einwandfrei, nur mit C# hab ich da gerade so meine Probleme. Schon mal vielen Dank für eure Hilfe ![happy](images/smiles/icon_happy.gif) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 02.08.2007, 09:39 Titel: |
|
|
Genau weiß ich's nicht, aber soweit ich weiß, werden in C und seinen Nachfahren die Daten in anderer Reihenfolge auf den Stack gelegt als in Basic. Das kann halt zu Inkompatibilität führen. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
csde_rats
![](images/avatars/12316792894651f2a289713.jpg)
Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 02.08.2007, 12:17 Titel: |
|
|
Elektronix hat Folgendes geschrieben: | Genau weiß ich's nicht, aber soweit ich weiß, werden in C und seinen Nachfahren die Daten in anderer Reihenfolge auf den Stack gelegt als in Basic. Das kann halt zu Inkompatibilität führen. | Von C nach FB zu benutzten ist ja kein Problem, da es cdecl gibt . Aber umgekehrt wirds wohl eher schwierig werden. ![zwinkern](images/smiles/icon_wink.gif) _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 02.08.2007, 12:38 Titel: |
|
|
Auf beiden Seiten stdcall benutzen? _________________ Eine handvoll Glück reicht nie für zwei.
--
![](http://ssteiner.de/f.png) |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 03.08.2007, 09:05 Titel: |
|
|
Ja genau,
da FB (wie fast alle Basic-Varianten) den 'stdcall' benutzt, kann man auf die DLL nur mit der gleichen Aufrufkonvention zugreifen.
2. Möglichkeit die DLL umschreiben auf 'cdecl', die von vielen C-Varianten benutzt wird.
Der Unterschied von 'cdecl' liegt nicht in der Reihenfolge der Übergabeparameter, anders als bei 'stdcall' bereinigt die aufrufende Funktion den Stack, nicht die aufgerufene Funktion. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
|