【dll 返回字符串 】2

【vc <--> vc】返回void* 类型

 

void* __stdcall torrent_hash(  const  char *TorrentFilePath)
{
     char szText[ 41]={ 0};
     if(strcmp(TorrentFilePath, "") ==  0 || TorrentFilePath == NULL)
         return NULL;

     string strHashString =  " abcdefg ";    

    sprintf(szText, " %s ",strHashString.c_str() );
    
    printf( " dll output: [%s %s] Anylist Result : %s \t Hash: %s\n ",__DATE__,__TIME__, TorrentFilePath , strHashString.c_str() );
    
     return ( void*)szText;
}

 

 extern "C" __declspec(dllexport) void* __stdcall  torrent_hash ( const char *TorrentFilePath);

 

使用:

 【dll 返回字符串 】2View Code

 
void torrent_hash(  char *backhash,  const  char *TorrentFilePath )
{

    typedef  void* (__stdcall *TORRENT_HASH)( const  char *TorrentFilePath_indll);    

    TORRENT_HASH HashFun;

    HINSTANCE HDLL = LoadLibrary(HASH_DLL_PATH);     
    
     if(HDLL==NULL) 
    {
        printf( " cannot find the dll file ");
         return ;
    }
    
         
     HashFun = (TORRENT_HASH)GetProcAddress(HDLL, " torrent_hash "); 

    
    strcpy(backhash , ( char*)HashFun( TorrentFilePath));

    printf( " TorrentFilePath Hash:%s \t %s\n ",TorrentFilePath, backhash);
        
    

    FreeLibrary(HDLL);

     return ;

}

int main( int argc,  char **argv)
{
    
         if(argc>= 0)
        {
             char backhash[ 41]={ 0};
            
            torrent_hash( backhash ,argv[ 1]);
                        
            printf( " TorrentFilePath Hash:%s \t %s\n ",argv[ 1], backhash);

        }
         else
        {
            printf( " loaddll torrent_path\n ");
        }
     
        printf( " end\n ");
    

你可能感兴趣的:(字符串)