Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.


Compiling for PPC, error in PwCompat.cpp

  • Bernd Strobel
    Bernd Strobel

    I ask my question here despite this is the site for KeePass for W32. But the compile errors occure in PwCompat.cpp. This file belongs to KeePass/W32.

    Additional I have to state that my programming experience with C++ is very little and very old. So I apologise in advance if this is a really stupid question... ;)

    But anyway: I get these errors (I've eliminated all the dependend errors):
    KeePass-1.03-Src\PwSafe\PwCompat.cpp(186) : error C2065: 'lpptr' : undeclared identifier
    PwCompat.cpp(240) : error C2065: 'lptTitle' : undeclared identifier
    PwCompat.cpp(240) : error C2065: 'lptURL' : undeclared identifier
    PwCompat.cpp(241) : error C2065: 'lptUserName' : undeclared identifier
    PwCompat.cpp(241) : error C2065: 'lptPassword' : undeclared identifier
    PwCompat.cpp(242) : error C2065: 'lptAdditional' : undeclared identifier

    Alle of these variable are used inside of a #ifdef _UNICODE .. #endif.
    I did a search through the whole project but these variables are defined nowhere. It seems to be easy to solve this problem. The variables seem to be used as a temporary space an can be defined easily.

    But now we come to my little to no C++ programming experience. I assume you compiled your project successfully. How can it come that you were able to do this? Are these variable defined in a header file that is different in my installation? Have you never tried to compile the project with _UNICODE defined? BTW. _UNICODE is defined in Mfc\Inlcude\wce.h which belongs to the PocketPC2003 SDK. I could undefine it but since it is defined in a global header file of the SDK I think this is not the rigth way. Again my little experience...

    • Dominik Reichl
      Dominik Reichl

      Please get the latest development snapshot:
      The latest snapshot _compiles_ fine in Unicode mode.

      Anyway, I do NOT recommend you to compile KeePass in Unicode mode. KeePass normally is built as ANSI application. ANSI mode is pretty stable and tested. All official releases of KeePass are ANSI builds.

      Unicode support is highly experimental and unfinished! The latest snapshot does compile, but I am already aware of several bugs that occur in Unicode mode. Also I'm not planning to release any Unicode builds of KeePass that soon.

      Best regards

      • Bernd Strobel
        Bernd Strobel

        If you don't recommend to use the _UNICODE part, I'll try to undef it in the source first.

        I didn't switch it on, it is defined in the SDK header files.

        Thanks for the help + best regards