C
#define AS __declspec(dllexport)
#define SP if (Output == NULL) return (1); *Output = calloc(3,sizeof(char)); if (*Output == NULL) return (2);
BOOL APIENTRY DllMain ( HINSTANCE hInst, DWORD reason, LPVOID reserved )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
OutputDebugString ("DLL_PROCESS_ATTACH"); break;
case DLL_PROCESS_DETACH:
OutputDebugString ("DLL_PROCESS_DETACH"); break;
case DLL_THREAD_ATTACH:
OutputDebugString ("DLL_THREAD_ATTACH"); break;
case DLL_THREAD_DETACH:
OutputDebugString ("DLL_THREAD_DETACH"); break;
}
/* Returns TRUE on success, FALSE on failure */
return TRUE;
}
int AS asInfo (char **Output, char **Input, int param_cnt)
{SP;
FILE *f = fopen("test.txt", "a+");
OutputDebugString ("Diese DLL ist von coolzero");
MessageBox(0,TEXT("Diese DLL ist von coolzero :-)"),TEXT("DLL Funktionen"),0);
sprintf(*Output, "Error von %s\n\n", *Input);
fprintf(f, "Input[0] <%s>\n", Input[0]);
fprintf(f, "Input[1] <%s>\n", Input[1]);
fprintf(f, "Input[2] <%s>\n", Input[2]);
free(Output); close(f);
return (1);
}
#define SP if (Output == NULL) return (1); *Output = calloc(3,sizeof(char)); if (*Output == NULL) return (2);
// Hier wird Speicher angefordert für das was du übergeben willst!
Das Prog. Dependencies, zeigt: " asInfo " als Funktionsname!
"OutputDebugString" kann man mit dem Programm 'DebugView von Sysinternals' auslesen!
Im DevC++, unter den Proj.-Einstellungen sind folgende Werte drinn:
Compiler: "-DBUILDING_DLL=1"
C++Compiler: "-DBUILDING_DLL=1"
Linker: "--no-export-all-symbols --add-stdcall-alias -lgmon"
Ich hoffe, ich habe jetzt nichts vergessen!