[CE SDK Update 17.1] Missing files?

Hi,

1. We have an interesting SQLite wrapper API in /include/BeSQLite directory but where is the corresponding library (*.lib)?

2. Make include files (*.mki) reference the dlmspec.exe in /bin directory, but the file is nowhere to be found in SDK deliveries.

Is it possible to retrofit both of them somehow?

Best regards

/Chris

  • Hi Chris,

    welcome back! Long  time no see you here :-)

    I recommend to move your question to MicroStation Programming forum. To move existing discussion, use More > Move tool, available under your original post.

    With regards,

      Jan

  • Hi ,

    For #1. I will check to see if BeSQLite.lib is a library we can publish for public consumption.

    For #2. dlmspec.exe is not required in MicroStation CONNECT Edition (and SDK) since it no longer supports MDL pseudo/interpreted code applications.
    Here is a description from the MicroStation V8 MDL Programmer's Guide for some additional information provided on the tool:

    · Dynamic Link Specification (DLS) - used to specify what symbols can be resolved from a specific Dynamic Link Library. A Dynamic Link Specification source file is compiled using the program dlmspec to create a Dynamic Link Specification object file. A Dynamic Link Specification object file is used when linking an MDL application to tell mlink what symbols will be resolved from the Dynamic Link Library. 

    HTH,
    Bob   



  • Hi Bob,

    dlmspec.exe is not required

    Yes, of course I know it is not required for NEW code.

    But it is still supported by MKI files with DLMLINK, and it still works correctly (publishing DLL functions from DLS files when present) with legacy code.

    I am working on porting of over 1 million lines of MDL code to CONNECT and really, really would appreciate not editing all this code more than it is absolutely necessary (which is already a lot). 

    In the meantime, code base running on V8i must be kept maintained so code running on CONNECT in case of bug fixes have to be backported to V8i all the time and the less these code bases are different from each other the better. Taking away a legacy tool which does not do any harm to CONNECT seems being... not nice.

    Cheers,

    /Chris Z.

  • Hi Chris,

    Granted the MSCE MKI files still have DLS/DLO code stubs available, however as you mention New Code should migrate to using native code DLLEXPORT conventions and should make sure not to mix DLS files whenever possible.

    I guess my question is, why use the MSCE SDK to create legacy DLO files from input DLS files all originating from legacy code and what benefit does that provide for your code (migration/interoperability) in MSCE?  Can you expand a little bit more on your attempt to re-use code between MSV8 and MSCE editions; since by nature and common conventions the two code bases should be branched due to the large changes necessary between both MSV8 and MSCE editions.

    Thank you,
    Bob



  • Hi again,

    > I guess my question is, why use the MSCE SDK to create legacy DLO files from input DLS files all originating from legacy code

    This is a very good question, because it shows that I failed miserably to clearly explain the purpose of using DLMSPEC in CONNECT.

    The purpose is not to create the now useless DLO files in CONNECT!

    The purpose is to create a LIB files without introducing extern "C"  DLLEXPORT to existing parts of legacy code which for some time need to be maintained both in CONNECT *.cpp and V8i *.c and *.mc files (i.e. parts of which can be moved forth and back between CONNECT and V8i with minimal editing).

    Normally as explained here a native compiler directive is used for CONNECT but it will not work in V8i where we also have the legacy pseudocode environment.

    In other words, DLMSPEC provides an elegant bridge between those two environments and creates LIB for CONNECT and LIB + DLO in V8i and .extern "C"  DLLEXPORT not needs to be introduced in sources.

     

    Cheers,

    /Chris Z.