[C++] > Linux DLL

Pagina: 1
Acties:

  • DiLDoG
  • Registratie: Oktober 2002
  • Laatst online: 19-08 17:27
Ik heb een source van een vrij simpel C++ dll'etje. Hoe kan ik zorgen dat deze op Linux draaid?
Moet ik hem dan helemaal opnieuw programmeren voor linux of kan ik hem converten?.

Het gaat om een DLL die wordt aangeroepen van een UT mutator om server logs in html op te slaan.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Mmmmmmmmmm waarom zou je 'm helemaal opnieuw moeten programmeren, ik mag toch hopen dat 95% van de code portable C++ is. Je zult alleen de frontend-calls moeten rewriten naar een voor Linux UT acceptabele structuur. Idee is alvast om alle feitelijke exported functies van de DLL 'ultradun' te maken, dwz. alleen een call naar een interne functie: dat vereenvoudigt porten een hoop omdat je dan op een ander platform alleen maar de simpele exports hoeft te herschrijven.

Professionele website nodig?


  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Je moet dan waarschijnlijk een zogenaamde shared library maken.
Stel dat je sourcefile ut.cpp heet, dan doe je dit :
code:
1
2
g++ -fpic -c ut.cpp
g++ -shared ut.o -o ut.so

Dan renameje het naar lib$(libraryname).$(version).so en je zet het in /usr/lib en je draait ldconfig.

Uiteraard lukt dit enkel als je C++ code geldig is onder Unix. Misschien ga je wat headers moeten veranderen, misschien moet je het van scratch herschrijven...

  • DiLDoG
  • Registratie: Oktober 2002
  • Laatst online: 19-08 17:27
Uhm ben niet zo heel erg bekend met c++ (c language wel beetje)
Ik heb files ff geupped naar http://www.hoflandconnections.nl/DOS/files/WebChatLogSrc.zip

Ik weet niet of dat hier de bedoeling is maar ik hoop dat er iemand is die er ff naar wil kijke als ie tijd heft. Het zou mij enorm veel tijd schelen omdat ik me er anders helemaal in moet gaan verdiepen.

Verwijderd

Weet je zeker dat die code een dll moet worden ? Het lijkt er namelijk niet echt op als ik naar de code kijk... wat is btw die .uc files ...lijkt wel een mix tussen php en C# of zo... begrijp dat het over unreal gaat dus wel 'n een of ander unreal taaltje zijn

[ Voor 28% gewijzigd door Verwijderd op 11-01-2003 00:09 ]


  • DiLDoG
  • Registratie: Oktober 2002
  • Laatst online: 19-08 17:27
webchatlog.uc is de mutator voor UT die de dll aanroept, UnrealScripts dus. En t moet echt DLL zijn (op dat uc ding na ;))
Me vader is wel c++ freak maar snapr niet van linux, dus als iemand kan zeggen wat ik in de code moet veranderen om t op linux te laten werken moet t lukken

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

DiLDoG schreef op 11 January 2003 @ 08:50:
webchatlog.uc is de mutator voor UT die de dll aanroept, UnrealScripts dus. En t moet echt DLL zijn (op dat uc ding na ;))
Me vader is wel c++ freak maar snapr niet van linux, dus als iemand kan zeggen wat ik in de code moet veranderen om t op linux te laten werken moet t lukken
Hoe gaat UT onder Linux dan om met library's? Staan er in de System directory gewoon allemaal DLL's? Of .so's?

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 24-08 23:08
Als dat UC script, dat je gebruikt om de DLL te laden (tenzij ik je verkeerd begrijp) een DLL met C++ code verwacht, dan kun je je bestaande C++ code gewoon naar een shared object library converteren, zoals XTerm al aangaf. Aangenomen dat er geen verschil zit tussen de Windows interface van je UT-module en die onder Linux, en dat het onder Windows goed werkt, zou je verder niets hoeven veranderen. Dan ga ik er ook van uit dat je C++ code portable is.

Wat heb je al geprobeerd? Gewoon compileren naar .so en neerzetten waar UT hem verwacht, bijvoorbeeld?
Pagina: 1