Including a C DLL in a windev project

Startbeitrag von gdelucce.pcs.crosspost am 18.05.2009 10:21

Hi everyone,
I am trying to include some C code written in Visual C++ 6 in my WinDev 12 project. I suppose I have to create a DLL from this code in order to embed it in WD. But it is not clear to me how I can include it in my project, I read the help but am still a little confused. Could I use CallDLL32 to use the functions in the DLL? or must I use the Automation functions? Can someone please post a step-by-step guide on how to include my custom C code in WinDev? thanks!!

Message forwarded from pcsoft.us.windev

Antworten:

noprop at all u can do :

F.I.

//Testdll.h the Header file

#ifdef TESTDLL_EXPORTS
#define WDEXPORT extern "C" __declspec(dllexport)
#else
#define WDEXPORT extern "C" __declspec(dllimport)
#endif


// define your exported functions
WDEXPORT int fntestdll(void);
WDEXPORT void fninc(int* intptr);


// Testdll.cpp

#include "stdafx.h"
#include "testdll.h"


BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}


// This is an example of exported functions.
WDEXPORT int fntestdll(void)
{
return 42; // what else :)
}
WDEXPORT void fninc(int* intptr)
{
++*intptr;
}


//WINDEV
res is int = API("TestDLL", "fntestdll")

//or
res is int = 100
API("TestDLL", "fninc", &res)
Trace(res) // 101



3 hints :
add WDEXPORT to the function you wanna access from WD.
pass structures as references use : &,
be very carefule in case that you find char* !!!
HTH


von BLS - am 22.05.2009 23:08
Zur Information:
MySnip.de hat keinen Einfluss auf die Inhalte der Beiträge. Bitte kontaktieren Sie den Administrator des Forums bei Problemen oder Löschforderungen über die Kontaktseite.
Falls die Kontaktaufnahme mit dem Administrator des Forums fehlschlägt, kontaktieren Sie uns bitte über die in unserem Impressum angegebenen Daten.