zunächst mal vielen dank für eure antworten. den neuen thread habe ich angefangen da der alte schon so weit unten ist.
ich verwende als c/c++ ide bloodshed dev-c++ (in der momentanen beta-version) von der ich an vielen stellen gelesen habe daß sie für anfänger wunderbar geeignet sei.
hier mein beispielcode:
in dllmain.cpp:
/* Replace "dll.h" with the name of your header */ extern "C" int WINAPI _export TimesTwo(int x); int BOOL APIENTRY case DLL_PROCESS_DETACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: /* Returns TRUE on success, FALSE on failure */ #ifndef _DLL_H_ #if BUILDING_DLL sieht natürlich etwas anders aus als in msvc++. wenn ich die dll nach system32 verschiebe und dann manuell versuche einen verweis auf sie zu setzen bekomme ich eine fehlermeldung. beim debuggen in excel erhalte ich laufzeitfehler 453 (einstiegspunkt in .dll wurde nicht gefunden). könntet ihr vielleicht mal einen blick drauf werfen. bin für jeden noch so kleinen tipp dankbar. gruß thomas
#include "dll.h"
#include
#include
DllClassBase::virtual_method () const
{
return -1;
}
DllClass::DllClass (int i) : i_(i)
{
++instances;
}
DllClass::~DllClass ()
{
--instances;
}
int
DllClass::virtual_method () const
{
return i_ * i_ * i_;
}
int
DllClass::non_virtual_method () const
{
return i_ * i_;
}
int DllClass::instances;
DllMain (
HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;
break;
break;
break;
}
return TRUE;
}
extern "C" int WINAPI _export TimesTwo(int x)
{
bla bla bla
}
in dll.h:
#define _DLL_H_
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
struct DLLIMPORT
DllClassBase
{
virtual int virtual_method (void) const;
};
class DLLIMPORT
DllClass : public DllClassBase
{
public:
DllClass (int i = 0);
virtual ~DllClass (void);
int non_virtual_method (void) const;
virtual int virtual_method (void) const;
DLLIMPORT static int instances;
private:
int i_;
};
#endif /* _DLL_H_ */