Eigene DLL für B3D bockt - Tutorial gesucht

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Kernle 32DLL

Betreff: Eigene DLL für B3D bockt - Tutorial gesucht

BeitragFr, Jul 20, 2007 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
[Eins vorab, da Userlibs und DLLS zu B3D gehören denke ich, der Thread gehört hier rein. Sollte das nicht der Fall sein, bitte ich einen Mod den Thread dahinzuschieben wo er hin gehört]

Hiho ^^

Ich wollte einfach mal wieder die Frage aufbringen, wie man DLLs für B3D erstellt. Für die, die jetzt schon gequält aufstönen und auf die Suche verweisen: Ja, ich habe schon gesucht ^^ Ich habe sogar einen guten Tread mit schritt für schritt Anweisung gefunden (Den Link hab ich nur gerade nicht da ich weit weg von meinem eigenen PC bin).

Das Problem nun ist, das zwar alles wunderbar mit meinem Borland C++ Builder funktioniert, nicht aber mit meinem Microsoft Visual Studio (neuste Version).

Ich kann die DLL problemlos kompilieren, doch wenn ich die in der DLL befindliche Funktion per Userlib einbinden will, meckert mir B3D was vor von "lib function not found" (oder so)... Benutze ich allerdings die mit meinem mit dem Borland C++ Builder kompilierte DLL (gleiche Userlib) funzt alles wunderbar.

Als Testfunktionen dienten mir die "mymagicfunction" die man hier und auf blitzbasic.com öfters findet, sowie einige andere Beispiele letzterer Seite (geschrieben in Visual Studio (!) )

Nun, lange rede kurzer Sinn:

Hat jemand ein funktionierendes Tutorial um DLLs für die aktuelle Microsoft Visual Studio Version zu schreiben, die ich in B3D verwenden kann ?

Grüßle:
Kernle

PS: Wer sich jetzt fragt wieso ich nicht einfach den Borland Compiler nehme: Er kann gewisse Dinge nicht die ich aber unbedingt brauche . . .
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009
 

Dreamora

BeitragFr, Jul 20, 2007 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Visual C compiler hat Name Mangling.
Da musst du leider in die DLL gucken wie die Funktion heisst, denn sie hat am namen noch was dran. Das musst du dann in der DECL file noch hinzuschreiben wie du es bei einigen anderen userlibs siehst.

und jepp war falsches forum, 3D ist für 3D nicht für B3D probleme.
Moved nach allgemein
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Kernle 32DLL

BeitragFr, Jul 20, 2007 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
öhm, wie schau ich denn in die DLL ?
Wenn ich die mit dem Editor öffne kriege ich nur nen haufen sonderzeichen entgegen geworfen ^^

Aber das am Funktionsnamen noch was dranhängen könnte... da hab ich ja so garnicht dran gedacht ^^

Grüßle:
Kernle

PS: Das war mein letzter Beitrag für heute. Muss noch packen, morgen gehts nach hause ^^
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009
 

Dreamora

BeitragFr, Jul 20, 2007 16:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt PE Explorer und andere Programme. Bei VisualC++ war früher auch ma eines dabei, da ich es seit VC6 nimmer genutzt habe, weiss ich nicht obs in den Tools noch drin is, müsstest du überprüfen.

Prinzipiell ist die interne Funktion dann irgendwas wie

name@i

wobei i = bytegrösse dessen was du reingibst

entsprecht
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

David

BeitragFr, Jul 20, 2007 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Name mangling unterdrücken:
Code: [AUSKLAPPEN]

extern "C"
http://bl4ckd0g.funpic.de
 

ByteCroc

BeitragFr, Jul 20, 2007 17:49
Antworten mit Zitat
Benutzer-Profile anzeigen
@Kernle32
Benutzt du den neuen Turbo C++ 2006 oder den C++ Compiler 5.5 von Borland ?

Ich hab mir heute den Turbo C++ 2006 gezogen und finde die IDE , Anleitungen udn Einstellungen wesentlich übersichtlicher als VC, mit dem hatte ich sogar ein Riesenproblem, ich hatte Watcom auch auf dem Computer und nach dem Einbinden der Pfade des PSDK damit ich WinAPI Aufrufe einbinden kann hat der Plötzlich auf die Watcom cl.exe zugegriffen ohne das da irgendo ein Pfad dahin gesetzt war, gemerkt hab ich es nur weil die cl.exe von Watcom einen Fehler ausgespuckt hat.
Evtl. sind meine DLL Versuche auch schon damit gelaufen, normale Anwendungen verlangen seit der Neuinstallation immer noch eine Ladung zusatzDLLs welche dann immer mit dem Programm und einer Manifest Datei dazu ausgeführt werden.

Ansonsten musst du in den Einstellungen beim VC noch auf _stdcall setzen wenn du eine DLL erstellst.

Lunatix

BeitragFr, Jul 20, 2007 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Dll's kann man auch mit BlitzMax erstellen:

dllTest.bmx:
Code: [AUSKLAPPEN]
SuperStrict
Framework brl.appstub

Function Test:Int()
  return 123456789
End Function


dllTest.def:
Code: [AUSKLAPPEN]
EXPORTS
Test=bb_Test


dllTest.bat:
Code: [AUSKLAPPEN]
cd c:\programme\blitzmax\bin
bmk makelib "..\dllTest.bmx"


dllTest.decls:
Code: [AUSKLAPPEN]
.lib "dllTest.dll"
Test%():"Test"


dllTest.bb:
Code: [AUSKLAPPEN]
Print "dllTest: "+Test()
WaitKey
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Kernle 32DLL

BeitragSa, Jul 21, 2007 10:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ByteCroc hat Folgendes geschrieben:
@Kernle32
Benutzt du den neuen Turbo C++ 2006 oder den C++ Compiler 5.5 von Borland ?[...]


Den 5.5er... Meine es ist sogar nur der 5.0er... Jedenfalls ist der Support für diese Version schon abgelaufen ^^

Ich muss dir allerdings zustimmen, das die IDE vom Visual Studio ziemlich verwirrend ist (was man auch von den mager und/oder maschinell überzetzten Microsoft Tutorials sagen kann...).

@David (habs Quote grad net zur hand Wink )
Ich meine das benutzt zu haben... Aber ich werds gleich nochmal checken. Danke für den Hinweis Very Happy

Grüßle:
Kernle

PS: Geez, ich häng immer noch an der Nordsee ^^
Die nach Hause fahrt beginnt erst um 2 oder so...
Und dann noch schrekliche 5 Stunden Autofahrt...
geeeeeeeeez.....
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009
 

David

BeitragSa, Jul 21, 2007 11:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Kernle 32DLL hat Folgendes geschrieben:

Ich muss dir allerdings zustimmen, das die IDE vom Visual Studio ziemlich verwirrend ist (was man auch von den mager und/oder maschinell überzetzten Microsoft Tutorials sagen kann...).


Da, ein Tutorial: https://www.blitzforum.de/foru...hp?t=24485
http://bl4ckd0g.funpic.de
 

ByteCroc

BeitragSa, Jul 21, 2007 11:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder lade dir die Turbo C++ 2006 Explorer Version herunter (Lizenz für 36242 Tage Very Happy )
http://www.turboexplorer.com/cpp
den darf man auch für kommerzielle Sachen benutzen sthet in der FAQ
ich finde auch die IDE und die Hilfe besser als beim VC++
und er benötigt nicht eine ganze Reihe zusatz DLLs wie der VC++ Express Version wenn du die Programme auf einem Fremdrechner laufen lassen willst.
Evtl. kann der VC++ auch irgendwas besser, aber mich hat Borland erstmal überzeugt, mein DirtyBasic-Compiler hat er gleich auf anhieb übersetzt und läuft, mit VC++ hab ich bis jetzt noch keine lauffähige Version hinbekommen.
Jetzt muss ich nur noch Speed Tests für BlitzDLLs machen, dann entscheide ich welchen ich vorerst benutze.
 

ChristianK

BeitragSa, Jul 21, 2007 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
ByteCroc hat Folgendes geschrieben:
er benötigt nicht eine ganze Reihe zusatz DLLs wie der VC++ Express Version wenn du die Programme auf einem Fremdrechner laufen lassen willst.

Einfach bei den Projekteigenschaften unter C/C++ -> Codegenerierung Multithreaded statt Multithreaded-DLL einstellen und es läuft auf jedem Rechner.
 

ByteCroc

BeitragSa, Jul 21, 2007 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, werd ich mal testen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group