请高手帮忙,VC++编译DLL,有没有参数和返回值都是字符串的实例,字符串要注意unicode问题,其他语言调用时,不会出现乱码,VC++可在visual studio 2005/2010上执行。

解决方案 »

  1.   

    DLL里一个函数:
    void Fun1(char * buf,int len)
    {
    char a;
    for(int i=0;i<len;i++)
    {
    a=buf[i];
    }
    }
    调用DLL的文件:
    char b[20]={'0','1','2',...};
    Fun1(b,20);
    至于返回的指针类型,我没试过,你可以试试:
    DLL里:
    char* Fun2()
    {
    char a[20];
    for(int i=0;i<20;i++)
    a[i]=i;
    return a;
    }
    调用DLL的文件:
    char *b,c[20];
    b=Fun2();
    int i;
    i=0;
    while(b!=NULL || b!='\0')
    {
    c[i]=*b++;
    i++;
    }
    这个我没试,你试试
      

  2.   

    #include<iostream>
    #include<string.h>
    using namespace std;int __stdcall  MyTest(char *string) 

       strcpy (string,"Hello!");
       return 0; 
    }这是VC++的代码,生成DLL后,其他语言调用后Hello!是乱码,怎么回事,怎么解决?
      

  3.   

    int __stdcall  MyTest(char *string) 

       strcpy (string,"Hello!");
       return 0; 
    }