if (hinstLib) {
// Die Einsprungadresse abfragen
ips_connect = (Connect) GetProcAddress(hinstLib, „Connect“);
// Die Funktion aufrufen
if (ips_connect)
result = (*ips_connect) ("127.0.0.1",3773);
// Die DLL-Datei wieder entladen
fFreeResult = FreeLibrary(hinstLib);
}
// Das Ergebnis anzeigen
if (!hinstLib || !ips_connect) {
printf("Fehler: Konnte die Funktion nicht aufrufen
");
return 1;
} else {
Ähh, das letzte Programm war reines (Borland-)C,nix Perl. Die Pointerumwandlung in meinem Perl-Programm macht das Win32::API-Modul mit dem Parameter „P“.
Es wäre jetzt interessant zu wissen, was in der DLL von den Parametern ankommt.
Hab grad schon gesehen, dass das c war. Hab direkt meine IDE gestartet und experimentiert. Hab nostalgische Gefühle dabei bekommen so lange ist meine C++ Zeit nun schon her…
Offtopic: Von wo läd Visual Basic im Debugmodus DLLs? Wenn ich die Exe starte reicht es wenn die DLL im selben Ordner liegt wie die EXE. Wenn ich den grünen Pfeil verwende (F5) dann fehlt ihm die DLL…
Mal geraten: Aus dem Verzeichnis wo vb.exe liegt und aus allen Direktories in %PATH%.
Leider gelingt es auch Deiner C-Version nicht sich bei mir zu connecten
Nee, hast Recht. Zwei Stolpersteine sind mir aufgefallen…
Bei Datei, Neu, Blablabla, Konsolenprogramm ist der Haken Multithreading wichtig (VCL hab ich mal auch angekreuzt, was glaub ich nicht nötig wäre). Das braucht das IPS SDK zwingend.
Der blöde Hund findet die TRIXI.dll nicht weil er die EXE im Debug-Ordner erstellt. Ein Kopiervorgang löst das Problem.
Hab das komplette Projekt oben noch mal hochgeladen.
Deine Exe geht. Die Delphi-Versionen gehen auch. Aber wenn ich den gleichen C-Code mit mein Projekt kompiliere, gehts nicht.
Also neues Projekt gemacht, diesmal als CPP-Projekt mit VCL (vorher C ohne VCL), dann gehts. Es kommt aber am Ende ein Assertion Failure. Ohne VCL als CPP-Projekt gehts wieder nicht.
Möglicherweise klammpt es deshalb bei Helmut und bei meinem Perl nicht, weil wir dort kein MT und kein VCL einstellen können.
Hast Du es schon mal mit VisualC (MS) probiert?
Also ohne MT kein IPS soviel kann ich schonmal sagen. Das liegt aber am IPS-SDK selbst.
An der VCL kanns nicht liegen, die hat VB auch nicht. Und bewusst verwende ich auch keine visuellen Komponenten.
Bin schon ein paar Jahre aus der Szene… Welche brauchbare c++ Freeware IDE kannst du empfehlen? C selbst hab ich nie gemacht. :rolleyes: Ist das so viel anders? Also für diesen Anwendungsfall jetzt?
Mit VC6 trotz Multithreading-Einstellung gehts auch nicht. Nun weiss ich nicht, an welchem der 50000 Schalter ich noch drehen muss. Ich hatte das C auch nur rausgeholt, um das Problem mit dem LPCSTR zu analysieren. Ich mache aber jetzt kein Compilersettings-Sadomaso, um das zum Laufen zu bringen. Hat mich so schon (zuviel) Zeit gekostet. Sonst nehme ich C auch nur, wenn ich anders nicht rankomme. Wenn es erstmal nur mit Delphi/VB geht, weiss ich ja Bescheid. Möglicherweise hat ja ein anderer der fleissigen Mitleser noch eine Erklärung.
Meine Empfehlung für Freeware-IDE: Codeblocks. Die neue Version 10 habe ich aber noch nicht installiert.
Wo ist das Problem mit Codeblocks?
Ich verwende die Version (jetzt 10.05) mit mingw unter Windows, das spart das Einrichten von VC oder BCC.
Also mit Installer und default installieren , starten, dann neues Projekt-> Consolenanwendung-> „C“ auswählen, „Hello World“ ist dann sogar schon der Dummy-Eintrag, kompilieren, fertig, läuft.(siehe Anhang)
Ich wollte CodeBlocks mit meinem Borland Compiler füttern aber der wäre invalid sagte es mir dann. Ich mir also die CodeBlocks-mingw-Version heruntergeladen und „peng“ jetzt ist auch mein Borland-Compiler nicht mehr invalid… Das soll mal einer verstehen… :rolleyes:
Jetzt muss ich mich aber wieder erst wieder um meine Brötchen kümmern.