Autor |
Beitrag |
Danny87
Beiträge: 688
Windows 10 Pro 64bit
Sprachen: HTML, PHP, JavaScript, Delphi || IDE: RAD Studio 10.1 Berlin Starter, WeBuilder
|
Verfasst: So 17.09.06 15:36
Hey Leute,
ich hab ne dll in C++ geschrieben, kann aber nicht auf die funktionen der dll zugreifen, weil ich keinen "exports" abschnitt hab.
wenn ich in delphi zB
Delphi-Quelltext
schreibe, wie muss ich dass in c++ schreiben?
sorry, wenn ich das etwas verwirrend geschrieben hab
Gruss
Daniel
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 17.09.06 18:46
Quellcodedatei:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| // FirstDLL.cpp : Definiert den Einstiegspunkt für die DLL-Anwendung. //
#include "stdafx.h" #include <windows.h> #include "FirstDLL.h"
BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; }
EXPORT int add(int a, int b) { return a+b; }
EXPORT int addstr(char *str1, char *str2, char *buffer, int lenbuffer) { if(strlen(str1) + strlen(str2) > lenbuffer) { return strlen(str1) + strlen(str2); } else { strcpy(buffer, str1); strcat(buffer, str2); return strlen(buffer); } } |
Headerdatei:
Quelltext 1:
| #define EXPORT __declspec(dllexport) |
Und wenn du da Name-mangling des VC verhindern willst, leg noch eine DEF Datei an, die du dem Linker mit übergibst:
Quelltext 1: 2: 3: 4: 5:
| LIBRARY FirstDLL.dll
EXPORTS add addstr |
|
|
Danny87
Beiträge: 688
Windows 10 Pro 64bit
Sprachen: HTML, PHP, JavaScript, Delphi || IDE: RAD Studio 10.1 Berlin Starter, WeBuilder
|
Verfasst: So 17.09.06 20:03
Hmm....danke.
Aber wenn ich das mit der def datei mache, dann bringt der compiler mir folgende fehlermeldung:
Dev-C++ hat folgendes geschrieben: | gcc: d:\dokumente und einstellungen\theguardian\desktop\test.def: linker input file unused since linking not done |
Mit der Meldung kann ich leider recht wenig anfangen. o.O
Gruss
Daniel
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 18.09.06 22:38
Tja, das klingt so, als wenn er erst gar nicht zum Linken kommen würde, weil im Quellcode Fehler sind.
|
|
tommie-lie
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Mo 18.09.06 23:21
Luckie hat folgendes geschrieben: | Tja, das klingt so, als wenn er erst gar nicht zum Linken kommen würde, weil im Quellcode Fehler sind. |
Oder weil er ein def-File nicht kompilieren kann. Je nach Aufruf sagt diese Fehlermeldung lediglich, daß die angegebene Datei nicht gelinkt wurde, möglicherweise weil der Kommandozeilenparameter -c war.
Das Name-Mangling deaktiviert man entweder compilerabhängig, oder (weitgehend) compilerunabhängig mit einer extern "C"-Deklaration.
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Danny87
Beiträge: 688
Windows 10 Pro 64bit
Sprachen: HTML, PHP, JavaScript, Delphi || IDE: RAD Studio 10.1 Berlin Starter, WeBuilder
|
Verfasst: Mo 18.09.06 23:32
Nee, der Code is 100% korrekt. Is ja auch nich so viel
Vermutlich komm ich auch nur nicht mit dem Dev-C++ 4 zurecht^^
Ich such mal nach nem andern Free-Compiler und probiers erneut.
Ich meld mich dann nochmal
Gruss
Daniel
|
|
|