taocrypt.lib + Visual C/C++



  • Hallo,

    ich möchte die taocrypyt Library gerne in einer DLL benutzen, leider erhalte ich beim übersetzen immer folgende Fehler:

    d:\DEV\taocrypt-0.9.2\mySTL\algorithm.hpp(39) : error C2226: Syntaxfehler: Typ 'T' nicht erwartet
    ...

    Ich verstehe das nicht, wenn ich das ganze in einer Konsolenanwendung einbaue funzt das aber warum nicht in der DLL???

    Und ich konnte die Lib ja auch aus ihren Source bauen. Gibts da Einschränkungen mit Templates und DLLs???

    Kann mir einer auf die Sprünge helfen?

    Vielen Dank schonmal!

    Andre

    PS: taocryp.lib -> http://www.yassl.com/
    Visual Studio 2003


  • Mod

    Dann zeige doch einfach mal ein Stück Code von der Stelle...



  • Also, wie gesagt die lib ist übersetzt und kann in einer Konsolenanwendung benutzt werden.

    Ich mache in der dll folgende Includes:

    #include "stdafx.h"
    #include <stdio.h>
    #include <iostream>
    
    #include "runtime.hpp"
    #include "sha.hpp"
    #include "md5.hpp"
    #include "md2.hpp"
    #include "md4.hpp"
    #include "ripemd.hpp"
    #include "hmac.hpp"
    #include "arc4.hpp"
    #include "des.hpp"
    #include "rsa.hpp"
    #include "dsa.hpp"
    #include "aes.hpp"
    #include "twofish.hpp"
    #include "blowfish.hpp"
    #include "asn.hpp"
    #include "dh.hpp"
    #include "coding.hpp"
    #include "random.hpp"
    #include "pwdbased.hpp"
    
    using TaoCrypt::byte;
    using TaoCrypt::word32;
    using TaoCrypt::MD5;
    using TaoCrypt::tcArrayDelete;
    

    Sonst steht noch nichts weiter in drin, ausser der dllMain mit einem "return true".

    Die Stelle in der Library, an der er als erstes meckert kommt hier:

    algorithm.hpp

    namespace mySTL {
    
    template<typename T>
    inline const T& max(const T& a, const T&b)
    {
        return a < b ? b : a;
    }
    ...
    

    Sieht für mich persönlich eigentlich ok aus, allerdings kenn ich mich mit "Visual C++" nicht sonderlich aus.



  • Versuch's mal mit einem #undef max am Anfang des Headers (max() und min() sind häufig als Makros definiert - und dadurch zerlegt dir der Präprozessor deine Funktionsdefinition).


Anmelden zum Antworten