I am use to writing command line based C code. I want to retain the code in proc1 (except for printf, although it could become a message box) but replace main with a simple GUI using MS VC. How do I make proc1 into a DLL? And how do I write C++ code to use that DLL?
extern void proc1(char *);
main()
{
char mystr[128]="output.txt\0";
char *str1;
str1=%26amp;mystr[0];
proc1(str1);
}
#include %26lt;stdlib.h%26gt;
#include %26lt;stdio.h%26gt;
void proc1(char *instr)
{
FILE *outptr;
outptr=fopen(instr,"w");
if(outptr==NULL)
{
printf("Could NOT create file (%s)\n",instr);
exit(0);
}
else
{
fprintf(outptr,"Add some text\n");
fprintf(outptr,"This is the file: %s\n",instr);
}
printf("File written: [%s]\n",instr);
}
How do I create and use a DLL?
It is a simple process. Just create a DLL VC++ project, and expose your intended function with a __declspec modifier as
extern "C" __declspec(dllimport) void proc1(char* instr);
for user code and
extern "C" __declspec(dllexport) void proc1(char* instr);
for the provider code.
To simplify this process you could make a common header file proc1.h having
#ifdef EXPORTING
extern "C" __declspec(dllexport) void proc1(char* instr);
#else
extern "C" __declspec(dllimport) void proc1(char* instr);
#endif
for your main file, simply include this header
#include "proc1.h"
for your proc1.c use an extra #define:
#define EXPORTING
#include "proc1.h"
Good luck
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment