“自己的懒惰,就是别人的进步” 要说难其实一点都不难,关键还是在数据类型转换上,比较恼人,像int,char之类的网上有好多示例,这里记录一下我遇到的麻烦:char*, char**的转换方式。为了更好的理解,我自己做了一个dll,来测试这一部分:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#include <stdio.h> #include <stdlib.h> #include <string.h> #define O_SIZE 1024 #define DEBUG 0 #ifdef __cplusplus extern "C" { #endif int __declspec(dllexport) __stdcall pchar_ppchar_t(char* input,char** output) { if(DEBUG)fprintf(stderr,"DEBUG-%s\n",input); *output=(char*)malloc(O_SIZE); memset(*output,'\0',O_SIZE); memcpy(*output,input,strlen(input)); if(DEBUG)fprintf(stderr,"DEBUG-%s\n",*output); return 0; } int __declspec(dllexport) __stdcall pchar_pchar_t(char* input,char* output) { if(DEBUG)fprintf(stderr,"DEBUG-%s\n",input); memcpy(output,input,strlen(input)); if(DEBUG)fprintf(stderr,"DEBUG-%s\n",output); return 0; } #ifdef __cplusplus } #endif |
这是windows版本的,linux上只需要将“__declspec(dllexpo […]