Autor Beitrag
Danny87
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 688

Windows 10 Pro 64bit
Sprachen: HTML, PHP, JavaScript, Delphi || IDE: RAD Studio 10.1 Berlin Starter, WeBuilder
BeitragVerfasst: 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
ausblenden Delphi-Quelltext
1:
2:
exports
    rechnen;

schreibe, wie muss ich dass in c++ schreiben?

sorry, wenn ich das etwas verwirrend geschrieben hab ;-)



Gruss
Daniel
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 17.09.06 18:46 
Quellcodedatei:
ausblenden volle Höhe Quelltext
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:
ausblenden 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:
ausblenden Quelltext
1:
2:
3:
4:
5:
LIBRARY FirstDLL.dll

EXPORTS
  add
  addstr
Danny87 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 688

Windows 10 Pro 64bit
Sprachen: HTML, PHP, JavaScript, Delphi || IDE: RAD Studio 10.1 Berlin Starter, WeBuilder
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Mo 18.09.06 23:21 
user profile iconLuckie 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 688

Windows 10 Pro 64bit
Sprachen: HTML, PHP, JavaScript, Delphi || IDE: RAD Studio 10.1 Berlin Starter, WeBuilder
BeitragVerfasst: 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