Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

dll's

Forumthread: dll's

dll's
30.07.2002 16:46:44
thomas
hallo leute,

ich habe mir in c eine dll erstellt und möchte diese nun in excel einbinden. die dll kann einwandfrei kompiliert werden, excel findet sie auch wunderbar nur erhalte ich dauernd die fehlermeldung daß der einstiegspunkt nicht gefunden wird. ich weiß nicht ob ich das problem bei meiner dll oder meiner excel-anwendung suchen soll. vielleicht hätte jemand von euch mit erfahrung bezüglich obiger problematik für mich ein kleines, wenn möglich ziemlich komplettes (inklusive c-code) beispiel.

vielen dank

gruß thomas

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: dll's
30.07.2002 18:18:37
Hans W Hofmann
Mit welchem Compiler bist Du denn ausgestattet. Das steht eigentlich in der Doku von VC++ ausrechend beschrieben.
Grundsätzlich Funktionen/Prozeduren müssen in Pascal-Standard aufgerufen werden also so was wie:
extern "C" __declspec(dllexport) void __stdcall foobar(int *t)

Was fehlt noch?

Gruß HW

Anzeige
Re: dll's
30.07.2002 18:36:23
Thomas Risi
Hallo Thomas

Mehr Info wäre nicht schlecht (Compiler, Quellcode, ...).

Hier ein kleines Beispiel (VC++):


#include "stdafx.h"

#ifdef __cplusplus
#define EXPORT extern "C" __declspec (dllexport)
#else
#define EXPORT __declspec (dllexport)
#endif

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
                     )
{
    return TRUE;
}

EXPORT TCHAR* __stdcall fDllTest1(TCHAR* txt)
{
    
    TCHAR* ReturnMessage = "TestChar";
    
    MessageBox(NULL, ReturnMessage, "TEST", 0);
    
    return ReturnMessage;
    
}



Option Explicit

Declare Function fDllTest1 Lib _
 "C:\Programme\Microsoft Visual Studio\MyProjects\CodeParser\Debug\CodeParser.dll" _
 Alias "_fDllTest1@4" (ByVal Na As StringAs Long

Sub Test()
Dim myString As String: myString = ""
Dim Pointer As Long: Pointer = fDllTest1("Beispiel")
'Dim Pointer As Long: Pointer = Beispiel2
Dim i As Long: i = 0
Dim Dummy As Byte: Dummy = 1
    
    Do While Dummy <> 0
        
        CopyMemory ByVal VarPtr(Dummy), ByVal Pointer + i, 1
        
        i = i + 1
        
        If Not Dummy = 0 Then myString = myString & Chr(Dummy)
        
    Loop
    
    MsgBox myString
    
End Sub

     Code eingefügt mit Syntaxhighlighter 1.13


Gruß

Thomas

Risi Thomas Softwareentwicklung
Thomas.Risi@t-online.de


Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige