New Plugin gets 'This ANSI plugin is not compatible with your Unicode Notepad++'



  • I’ve created a sample Plugin derived from NppPluginTemplate. Its compiled with Embarcadero’s C++ Builder as a 32 Bit application and with UNICODE. The function isUnicode() is build and exported from the DLL. But if i start Npp i get the messagebox:

    This ANSI plugin is not compatible with your Unicode Notepad++

    NppPluginDemo.dll is not compatible with the current version of Notepad++

    Npp Debug Info is:

    Notepad++ v7.5.4 (32-bit)
    Build time : Jan 1 2018 - 01:47:45
    Path : C:\Program Files (x86)\Notepad++\notepad++.exe
    Admin mode : OFF
    Local Conf mode : OFF
    OS : Windows 10 (64-bit)
    Plugins : ComparePlugin.dll DSpellCheck.dll mimeTools.dll NppConverter.dll NppExec.dll NppExport.dll NppFTP.dll NPPJSONViewer.dll NppTextFX.dll PluginManager.dll PyNPP.dll PythonScript.dll SourceCookifier.dll



  • @Erwin-Marschalk said:

    isUnicode()

    not only build but returns True?

    Cheers
    Claudia



  • Yes, it returns with

    return TRUE;

    as in the sample.

    Cheers

    Erwin



  • @Erwin-Marschalk

    I don’t know Embarcadero’s C++ but how does it build the dll
    with stdcall or cdecl convention?

    Cheers
    Claudia



  • Claudia,

    the entry is defined as

    extern “C” __declspec(dllexport) BOOL isUnicode()

    but as i checked the dll, its exported with an underscore.

    I’ll check the linker options to remove the underscores.

    Thanks

    Erwin



  • I have it now. I compiled the plugin template without any changes. The only thing was, the C++Builder has a project option ‘C++ Compiler/Output/Create Underscore for Symbolnames’, which is checked by default. It must be unchecked.

    Conclusion, Npp Plugins can also developed with Embarcadero’s C++ Builder.

    Erwin


Log in to reply