Community

    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    SQLinForm dll not compatible with the current version o N++

    Plugin Development
    5
    28
    338
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Ekopalypse
      Ekopalypse @Guido Thelen last edited by

      @Guido-Thelen

      this error happens when isUnicode function is not exported.
      isUnicode should always return True.

      Guido Thelen 1 Reply Last reply Reply Quote 2
      • Guido Thelen
        Guido Thelen @Ekopalypse last edited by Guido Thelen

        @Ekopalypse ok. I checked the UnmanagedExports class and it contains isUnicode function (see code snippet above)

        1 Reply Last reply Reply Quote 0
        • Ekopalypse
          Ekopalypse last edited by

          but is it really exported??
          Tools like dumpbin /exports can show if the function is really exported.

          1 Reply Last reply Reply Quote 1
          • Ekopalypse
            Ekopalypse last edited by Ekopalypse

            Something like this

            dumpbin /exports D:\PortableApps\Npp\plugins\PythonScript\PythonScript.dll
            
            Dump of file D:\PortableApps\Npp\plugins\PythonScript\PythonScript.dll
            
            File Type: DLL
            
              Section contains the following exports for PythonScript.dll
            
                00000000 characteristics
                FFFFFFFF time date stamp
                    0.00 version
                       1 ordinal base
                       7 number of functions
                       7 number of names
            
                ordinal hint RVA      name
            
                      1    0 000452B0 PyInit_Npp
                      2    1 000434E0 beNotified
                      3    2 00042730 getFuncsArray
                      4    3 00042720 getName
                      5    4 0000A420 isUnicode
                      6    5 00043880 messageProc
                      7    6 00042570 setInfo
            
              Summary
            
                   16000 .data
                    D000 .pdata
                   6B000 .rdata
                    2000 .reloc
                    9000 .rsrc
                   F7000 .text
            
            1 Reply Last reply Reply Quote 2
            • Guido Thelen
              Guido Thelen last edited by

              indeed. this could be the problem. When I build the same solution with VS2015 instead of VS2019, it works (without changing anything). Probably the Export is not done in VS2019.

              Ekopalypse 1 Reply Last reply Reply Quote 2
              • Ekopalypse
                Ekopalypse @Guido Thelen last edited by Ekopalypse

                @Guido-Thelen
                last time I played with C# plugin interface there was an
                extra export step at the end. I can’t remember its name.
                Maybe in 2019 it does have to be called slightly different!?

                Guido Thelen 1 Reply Last reply Reply Quote 1
                • Guido Thelen
                  Guido Thelen @Ekopalypse last edited by

                  @Ekopalypse thx. Will check this. Where can I find dumpbin?

                  1 Reply Last reply Reply Quote 1
                  • Ekopalypse
                    Ekopalypse last edited by Ekopalypse

                    should be available from a developer command prompt
                    Is part of VS environment.

                    Guido Thelen 1 Reply Last reply Reply Quote 2
                    • Guido Thelen
                      Guido Thelen @Ekopalypse last edited by Guido Thelen

                      @Ekopalypse ok. found it. it is strange. the version built with VS2015 does not have the isUniCode function exported, but it works

                      Dump of file C:\Users\guido\Documents\SQL\C#SQLinForm\SQLinFormNpp - Kopie (3)\SQLinFormNpp\bin\Release\SQLinFormNpp.dll
                      
                      File Type: DLL
                      
                        Summary
                      
                              2000 .reloc
                              2000 .rsrc
                              2000 .sdata
                             F6000 .text
                      
                      C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>
                      
                      
                      

                      So, it looks like it is as you wrote: the export is missing

                      Ekopalypse zanud 2 Replies Last reply Reply Quote 1
                      • Ekopalypse
                        Ekopalypse last edited by

                        that is strange, indeed. How can npp access non-existent function pointers??
                        Let me check this again.

                        1 Reply Last reply Reply Quote 0
                        • Ekopalypse
                          Ekopalypse @Guido Thelen last edited by

                          @Guido-Thelen If I download the version available from plugin admin I do see the functions exported.

                          File Type: DLL
                          
                            Section contains the following exports for \SQLinFormNpp64.dll
                          
                              00000000 characteristics
                              5DD1422F time date stamp Sun Nov 17 13:50:55 2019
                                  0.00 version
                                     0 ordinal base
                                     6 number of functions
                                     6 number of names
                          
                              ordinal hint RVA      name
                          
                                    5    0 000EF2CE beNotified
                                    2    1 000EF2AA getFuncsArray
                                    4    2 000EF2C2 getName
                                    0    3 000EF292 isUnicode
                                    3    4 000EF2B6 messageProc
                                    1    5 000EF29E setInfo
                          
                          Guido Thelen 1 Reply Last reply Reply Quote 1
                          • Guido Thelen
                            Guido Thelen @Ekopalypse last edited by

                            @Ekopalypse I think I need a break. making too many errors. Thx for today.

                            Ekopalypse 1 Reply Last reply Reply Quote 3
                            • Ekopalypse
                              Ekopalypse @Guido Thelen last edited by

                              @Guido-Thelen

                              no problem :-D - Good night.

                              Guido Thelen 1 Reply Last reply Reply Quote 1
                              • zanud
                                zanud @Guido Thelen last edited by

                                @Guido-Thelen

                                the version built with VS2015 does not have the isUniCode function exported, but it works

                                Just in case: have not you forgot about the “/exports” parameter of dumpbin?

                                Guido Thelen 1 Reply Last reply Reply Quote 0
                                • Guido Thelen
                                  Guido Thelen @zanud last edited by

                                  @zanud exactly. thanks a lot.

                                  1 Reply Last reply Reply Quote 0
                                  • Guido Thelen
                                    Guido Thelen @Ekopalypse last edited by

                                    @Ekopalypse today I got it working :-) Sleeping was of great help.
                                    The issue was that in the refactored version I am working with 2 C# projects. One project for the GUI and one project for the formatter/parser.
                                    I refer from the GUI project to the parser project. Because I am only referring to it, the parser dll is not included into the GUI output and Notepad++ issues an error message. The reason is probably that the parser dll cannot be found.
                                    But when I copy the source files from the parser project into the GUI project it is better. The GUI dll is of course much bigger and, because it contains now also the parser and Notepad++ is happy.
                                    Probably this is an stupid error, but I am not a C# develpper and I am not familiar with Visual Studio. I developped the original parser in Java and transpose the code with a utility into C#.
                                    Many Thanks to you :-)

                                    Ekopalypse 1 Reply Last reply Reply Quote 4
                                    • Ekopalypse
                                      Ekopalypse @Guido Thelen last edited by Ekopalypse

                                      @Guido-Thelen

                                      Sleeping was of great help.

                                      Yeah, has been the solution to many of my problems as well :-D
                                      I’m not a C# developer either, only know VisualBasic.Net a bit.
                                      But this reminds me of a problem I had playing with the c# plugin interface.
                                      If I remember correctly, the problem was that loading the
                                      .Net class didn’t happen at the time npp loaded the plugin.
                                      You had to hack the import chain to make it work.
                                      Not sure if this is still relevant with a current .Net version either.
                                      If I find the code project article (I suspect it was there), I’ll let you know.

                                      1 Reply Last reply Reply Quote 2
                                      • rinku singh
                                        rinku singh @Guido Thelen last edited by rinku singh

                                        @Guido-Thelen said in SQLinForm dll not compatible with the current version o N++:

                                        @Ekopalypse thanks for your answer.
                                        Below is a screenshot of the message.
                                        4a759f89-2f84-4778-82c7-35ed6d15bcfa-grafik.png
                                        Regards
                                        Guido

                                        i think you are at windows 10
                                        https://github.com/pnedev/nppgtags/pull/28
                                        could not get dll for test

                                        PeterJones 1 Reply Last reply Reply Quote 0
                                        • PeterJones
                                          PeterJones @rinku singh last edited by PeterJones

                                          @rinku-singh ,

                                          What does a PR for NppGTags plugin have to do with the issue at hand? A random link, and the statement “i think you are at windows 10”, doesn’t help anyone understand what you are trying to get across.

                                          If you think the NppGTags solution will help @Guido-Thelen solve his problem, you will have to explain how and why you think that.

                                          edit: Are you suggesting, like in the issue behind that PR, that @Guido-Thelen should install/update his Visual C++ redistributable 2015-2019 ? /edit

                                          1 Reply Last reply Reply Quote 2
                                          • First post
                                            Last post
                                          Copyright © 2014 NodeBB Forums | Contributors