Native MDL apps, libraries

Hi

I'm in the progress of moving our MDL applications including our libraries to native code and it works fine. I can see that when I want to send one of the applications to our costumers I need to include the .dll files for our libraries. Is it possible to link the .dll file for the application in another way so that this dll file includes everything needed to run the application ? (like the .ma files in the old days)

I hope someone can help me

Regards,

Evan

  • If I remember right, there were two kind of Libs in old MDL-days. LM and DLM.

    I think you are asking for LM. If a LM was linked, all necessary function were copied to the  MA.

    With DLL this is AFAIK not longer possible, and IMHO it dos not make a lot of sense either.

    If you like to build only one MA-DLL pair in native code, you have to work with the makefile, and compile some of your LIB-code-files again and again for each module.

    I guess, with a reorganization of your Libs, it would be easier to give the customer only the functionality he needs.  

    Mit freundlichen Grüßen / Best regards
    Volker Hüfner

    |  AB_DATE Engineering  Software   |  ab-date.de  |

  • Volker, Evan

    not yet complete, you can create lib's (not ma's) as standard dll's (even with mdl-code inside) and use static binding instead of dynamic at compilation time (the same way i might bind the MFC).

    Unfortunately I'm not using the 'normal way' to create native code ma's therefore I cannot tell you what might be

    needed  to change in the mke, to successfully do so (maybe Dan knows, as he tested with static MFC binding).

    But as far as I understand it will be difficult, if not impossible to bind dll's created as part of a ma/dll pair. You might test to get a lib file from them (as an option at compilation time), but here ends my knowledge.

    I would know a number of reasons to use static binding, it's the only way that interface changes in a lib will not destroy apps, that where compiled with the previous one (which otherwise implies recompilation of all the stuff, and deploying always anything).

    But I even agree with Volker that a revision of your code might be the best try, just include those headers and cpp's that contain the functionality you need, and you will even get a complete standalone app. Compiled libs should only be used where necc.

    HTH Michael



  • Unknown said:

    maybe Dan knows, as he tested with static MFC binding).

    I'm compiling in VS without use of .MKE files since I don't understand all the stuff in MKE. What I'm doing are standard static libraries and function definitions. Then I link them together into one DLL with all functionality that I need for current project (for every version of MicroStation I have precompiled all libs or they are just included inside of VS solution, so it can be rebuilt all together).

    I'm now slowly reorienting myself from MFC to standard MDL dialogs or .NET dialogs. I'm doing .NET addins with UI as easy as it is possible only in .NET and all functionality is made in native DLL, so .NET is only in role of commander. Result are 2 DLLs, but it works fine (in MicroStation).

    Dan