AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

C++ my Delphi benutzen

Ein Thema von sk.Silvia · begonnen am 20. Aug 2008 · letzter Beitrag vom 25. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von sk.Silvia
sk.Silvia

Registriert seit: 8. Feb 2006
Ort: Slovenia
90 Beiträge
 
Delphi 7 Personal
 
#1

C++ my Delphi benutzen

  Alt 20. Aug 2008, 17:32
hallo, ich ahbe ein C++ kode in einer cpp detei, wie kann ich es in delphi nutzen? kann man eine dll erstellen, und dann die c++ procedur aufzurufen? oder wass kann man tuhn?

dass kode is relativ hard nach delphi umzuschreiben, obwohl es nicht lang ist
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#2

Re: C++ my Delphi benutzen

  Alt 20. Aug 2008, 17:36
Hi sk.Silvia,

Zitat von sk.Silvia:
hallo, ich ahbe ein C++ kode in einer cpp detei, wie kann ich es in delphi nutzen? kann man eine dll erstellen, und dann die c++ procedur aufzurufen? oder wass kann man tuhn?
Ich kann Dir als Tipp nur den Link zu Rudy's Delphi Corner geben:

Using C++ objects in Delphi
bzw.
Using C object files in Delphi

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Carlo91

Registriert seit: 3. Jun 2006
Ort: Bremen
107 Beiträge
 
Delphi 2006 Architect
 
#3

Re: C++ my Delphi benutzen

  Alt 20. Aug 2008, 18:02
Hi,
wenn der Code nicht lang ist kann ihn vielleicht ich oder ein anderer User nach Delphi übersetzen. Du kannst ihn ja mal hier Posten oder Hochladen.

MfG Carlo
Thorben
  Mit Zitat antworten Zitat
Benutzerbild von sk.Silvia
sk.Silvia

Registriert seit: 8. Feb 2006
Ort: Slovenia
90 Beiträge
 
Delphi 7 Personal
 
#4

Re: C++ my Delphi benutzen

  Alt 20. Aug 2008, 18:29
Delphi-Quellcode:
void ResetAdapter(char * AdapterName) {
  struct _GUID guid = {0xBA126AD1,0x2166,0x11D1,0}
;
  memcpy(guid.Data4, "\xB1\xD0\x00\x80\x5F\xC1\x27\x0E", 8);
  unsigned short * buf = new unsigned short[strlen(AdapterName)+1];
 
  void (__stdcall *NcFreeNetConProperties) (NETCON_PROPERTIES *);
  HMODULE NetShell_Dll = LoadLibrary("Netshell.dll");
  if (!NetShell_Dll) {
    printf("Couldn't load Netshell.dll\n");
    return;
    }

  NcFreeNetConProperties = (void (__stdcall *)(struct tagNETCON_PROPERTIES *))GetProcAddress(NetShell_Dll, "NcFreeNetconProperties");
  if (!NcFreeNetConProperties) {
    printf("Couldn't load required DLL function\n");
    return;
    }


  for (unsigned int i = 0; i <= strlen(AdapterName); i++) {
    buf[i] = AdapterName[i];
    }

  CoInitialize(0);
    INetConnectionManager * pNCM = NULL;
    HRESULT hr = ::CoCreateInstance(guid,
                                     NULL,
                                     CLSCTX_ALL,
                                     __uuidof(INetConnectionManager),
                                     (void**)&pNCM);
    if (!pNCM)
        printf("Failed to instantiate required object\n");
    else {
        IEnumNetConnection * pENC;
        pNCM->EnumConnections(NCME_DEFAULT, &pENC);
        if (!pENC) {
          printf("Could not enumerate Network Connections\n");
          }

        else {
          INetConnection * pNC;
          ULONG fetched;
          NETCON_PROPERTIES * pNCP;
          do {
            pENC->Next(1, &pNC, &fetched);
            if (fetched && pNC) {
              pNC->GetProperties(&pNCP);
              if (pNCP) {
                if (wcscmp(pNCP->pszwName, buf) == 0) {
                  pNC->Disconnect();
                  pNC->Connect();
                  }

                NcFreeNetConProperties(pNCP);
                }
              }
            } while (fetched);
            pENC->Release();
          }
        pNCM->Release();
    }

    FreeLibrary(NetShell_Dll);
    CoUninitialize ();
  }
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#5

Re: C++ my Delphi benutzen

  Alt 23. Aug 2008, 11:50
wenn du die C++ routine compilieren kannst, in ein .OBJ kannst du das .OBJ via {$link xyz.obj} einfach in dein programm einlinken. da müsstest dann nur noch die deklaration der funktion in pascal schreiben...

vielleicht wär das ein weg...

<HTH> GG
  Mit Zitat antworten Zitat
Benutzerbild von sk.Silvia
sk.Silvia

Registriert seit: 8. Feb 2006
Ort: Slovenia
90 Beiträge
 
Delphi 7 Personal
 
#6

Re: C++ my Delphi benutzen

  Alt 23. Aug 2008, 13:30
und die funkcion werde ich wie rufen?

wenn si in C++
void ResetAdapter(char * AdapterName)
rufe ich sie dann

ResetAdapter(AdapterName : array of char) ?
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#7

Re: C++ my Delphi benutzen

  Alt 23. Aug 2008, 13:41
ja, so in etwa ...

deklarieren
procedure ResetAdapter(const AdapterName: PChar); external; cdecl; und dann so aufrufen:
ResetAdapter(aAdapterName); die details der deklaration hängen aber von den compileroptionen des C/C++ compilers ab... kannst normal einstellen...

<HTH> GG
  Mit Zitat antworten Zitat
Benutzerbild von sk.Silvia
sk.Silvia

Registriert seit: 8. Feb 2006
Ort: Slovenia
90 Beiträge
 
Delphi 7 Personal
 
#8

Re: C++ my Delphi benutzen

  Alt 24. Aug 2008, 10:20
dass is toll, kann ich noch ein request haben?

kann es jemand fur mich in *.obj kompilieren, den ich habe Borland C++ nicht
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.753 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: C++ my Delphi benutzen

  Alt 24. Aug 2008, 12:24
Hallo,

wenn sich hier keiner findet, es gibt auch kostenlose C++ Compiler.
gcc, MinGW oder auch mit GUI.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#10

Re: C++ my Delphi benutzen

  Alt 24. Aug 2008, 21:31
Zitat von Klaus01:
Hallo,

wenn sich hier keiner findet, es gibt auch kostenlose C++ Compiler.
gcc, MinGW oder auch mit GUI.

Grüße
Klaus
ganz so einfach ist es leider nicht. das .OBJ format ist zwar von INTEL standardisiert, aber leider gibt es viele C dialekte, z.b. den von M$. man kann aus den schnippsel zwar nicht sehr viel erkennen, jedoch scheint es, als ob es von einem M$ C/C++ compiler stammt.

d.h. die ganzen header dürften mit einem anderen compiler selbst geschrieben werden müssen, wenn die sourcen nicht vorhanden sind.

denke, es wär beinahe besser den code gleich von der kristallkugel direkt in delphi zu implementieren, anstatt zuerst noch nach C
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz