MDL Native code, does bmake make a 32 or 64 bit dll?

A CEO asked question, in MDL native code via bmake make a 32 or 64 bit dll?

Parents
  • Hi Alan,

    in fact, the question does not make sense. But it's still clear what your colleague asked for ;-)

    A crucial fact is that bmake does not produce any code! All make programs (Bentley bmake, GNU make, Microsoft MsBuild etc.) only control the process how code is compiled and linked (plus possible other tasks like adding digital signature etc.). It's controlled by make file (.mke in the case of bmale, .csproj in VisualStudio C# projects...).

    When talking about native C/C++ code, the application is made using Visual C compiler and linker. It's typically delivered as part of Visual Studio package. It's defined by Bentley in SDK requirements, what compiler version (Visual Studio version) has to be used for particular MicroStation version. It's because (with some simplifications) when software is compiled from C/C++ code to dll using specific compiler, to create an application for this software, the same compiler has to be used.

    In Bentley world, it's:

    • For MicroStation V8i (all versions from original one to the latest SS10), Visual Studio 2005 Professional has to be used and the code is 32bit (because all MicroStations before CE were 32bit apps).
    • For MicroStation CE it's a bit more complicated, but for Update 12, 13 and 14, Visual Studio 2017 Professional has to be used and the code is 64bit (because MicroStation CE is 64bit app).

    It's up to bmake configuration (technically it's defined in mki files) to find Visual C compiler and to call it in a proper way to produce 32bit or 64bit dll.

    BTW You posted your question to general Developers and Programming Forum, which is not so active. It's recommended to use product specific programming forums (when it exists), in this case MicroStation Programming forum.

    You can also move existing own posts to another forum using More > Move tool available under your original post.

    With regards,

      Jan

Reply
  • Hi Alan,

    in fact, the question does not make sense. But it's still clear what your colleague asked for ;-)

    A crucial fact is that bmake does not produce any code! All make programs (Bentley bmake, GNU make, Microsoft MsBuild etc.) only control the process how code is compiled and linked (plus possible other tasks like adding digital signature etc.). It's controlled by make file (.mke in the case of bmale, .csproj in VisualStudio C# projects...).

    When talking about native C/C++ code, the application is made using Visual C compiler and linker. It's typically delivered as part of Visual Studio package. It's defined by Bentley in SDK requirements, what compiler version (Visual Studio version) has to be used for particular MicroStation version. It's because (with some simplifications) when software is compiled from C/C++ code to dll using specific compiler, to create an application for this software, the same compiler has to be used.

    In Bentley world, it's:

    • For MicroStation V8i (all versions from original one to the latest SS10), Visual Studio 2005 Professional has to be used and the code is 32bit (because all MicroStations before CE were 32bit apps).
    • For MicroStation CE it's a bit more complicated, but for Update 12, 13 and 14, Visual Studio 2017 Professional has to be used and the code is 64bit (because MicroStation CE is 64bit app).

    It's up to bmake configuration (technically it's defined in mki files) to find Visual C compiler and to call it in a proper way to produce 32bit or 64bit dll.

    BTW You posted your question to general Developers and Programming Forum, which is not so active. It's recommended to use product specific programming forums (when it exists), in this case MicroStation Programming forum.

    You can also move existing own posts to another forum using More > Move tool available under your original post.

    With regards,

      Jan

Children