vc写dll,我只会写int类型的函数:__stdcall int CALLBACK CalcSum(int a,int b);vb中可以声明:
Private Declare Function MySum Lib "d:\MyDLL.dll" (ByVal S As Integer, ByVal D As Integer) As Integer
这样就可以在vb中使用了,可是我现在想在dll中写一个能够返回字符串的函数,并用vb的label控件把函数返回的字符串显示出来,请问dll里怎么写?vb里怎么声明?label控件怎么调用它?如能解决,立即给分,恳请大家帮帮忙!

解决方案 »

  1.   

    __stdcall int CALLBACK CalcSum(int a,int b,char *c);vb中可以声明:
    Private Declare Function MySum Lib "d:\MyDLL.dll" (ByVal S As Integer, ByVal D As Integer, ByRef c as string) As Integer
      

  2.   

    用BSTRCString::AllocSysString 
    BSTR AllocSysString ( ) const;
    throw( CMemoryException );Return ValuePoints to the newly allocated string.
    或者
    SysAllocString
    BSTR SysAllocString( 
      OLECHAR FAR*  sz  
    );
     
      

  3.   

    __stdcall char * CALLBACK CalcSum(int a,int b);在vb中定义函数的返回值就字符串类型或者字符指针就可以了
      

  4.   

    试试:
    VB中String转换为VC中的BSTR,只要把参数类型改了就可以了,但要注意使用ByRef
      

  5.   

    http://support.microsoft.com/kb/187912