Viz Studio 2013 error when include MicrostationAPI.h

Hello,


After one full evening of research, I decided to post my nooby problem here. Basically, I just want to start a microstation project in Viz Studio 2013.

I had both include Microstation :

MicroStation\mdl\include
MicroStation\mdl\MicroStationAPI


Into the main file, I added

#define winNT
#include <MicroStation.API>
BEGIN_BENTLEY_NAMESPACE

That's all, but compiler returns me many error (14), these are the 4 firsts :

Error    1    error C2146: syntax error : missing ';' before identifier 'size_type'    c:\users\tom\bentley\microstation\mdl\include\memutilallocator.h    42    1    MdlTEST
Error    2    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int    c:\users\tom\bentley\microstation\mdl\include\memutilallocator.h    42    1    MdlTEST
Error    3    error C2146: syntax error : missing ';' before identifier 'difference_type'    c:\users\tom\bentley\microstation\mdl\include\memutilallocator.h    43    1    MdlTEST
Error    4    error C4430: missing type specifier - int assumed. Note: C++ does not support default-int    c:\users\tom\bentley\microstation\mdl\include\memutilallocator.h    43    1    MdlTEST

Anyway, I cannot do anything, it's always wrong somewhere into these files.

Of course I checked all http://www.la-solutions.co.uk/content/Publications-MDL.htm#ArticleIndexDevTools, thanks Jon, but I couldn't find a solution.

Could you see what's wrong ??

Thank you and have a nice day

Tom

Parents
  • Unknown said:
    I just want to start a MicroStation project in Viz Studio 2013

    When writing a native-code C/C++ application, use the right version of Viz Studio!

    Unknown said:
    #include <MicroStation.API>

    No such object MicroStation.API!  If it's the header file you want to include, then do this...

    #include <MicroStationAPI.h>

     
    Regards, Jon Summers
    LA Solutions

  • Yes of course, MicroStation.h

    So I am probably using a wrong version, I will try with an old one.

  • Unknown said:
    Is there lib file somewhere else that I am missing?

    Once again, you ask a question that we can't answer without seeing your code.

    If you look in the MDL documention, you will find both the header file (required by the compiler) and the library file (required by the linker) for each function.  For example...

    mdlSystem_newDesignFile

    Function

                     

    int      mdlSystem_newDesignFile
    (
    char const*      fileName
    );

    Description

      Open a Design File after closing the open (active) design file.

    Required Header

      <mssystem.fdf>

    Required Library

        mdlbltin.lib (MicroStation Built-in)

     
    Regards, Jon Summers
    LA Solutions

  • Jon, this is my code, really basic:

    #define winNT
    #include "stdafx.h"
    #include <iostream>
    #include <mdl.h>
    #include <mssystem.fdf>


    //BEGIN_BENTLEY_NAMESPACE
    void useless() {
      int fd = mdlSystem_newDesignFile("toto.dgn");
    }
    //END_BENTLEY_NAMESPACE
    int _tmain()
    {
      std::cout << "Hello World!" << std::endl;
      useless();
      return 0;
    }

    Hope it's all right.

  • Unknown said:
    The additional library path is set exactly like in your picture

    My screenshot shows also a number of library (.lib) files that are specified in the Viz Studio project settings.

     
    Regards, Jon Summers
    LA Solutions

  • Unknown said:
    BMAKE: Error - Attempting to build with VS 2005 but location is undefined!

    It probably means something is wrong in your Visual Studio 2005 installation or Windows configuration.

    All example makefiles include AssertToolSet.mki that contains logic how path to VisualStudio tools (e.g. C++ compiler, linker etc.) is discovered. By default, it's taken from registry, in the case of VisualStudio 2005 it's HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/8.0/Setup/VS. The message means the makefile decided VisualStudio 2005 is the tool which should be used (which is correct), but was not able to find the key in registry (doesn't exist or not enough access right to access the registry).

    A workaround can be to define VS2005Dir variable as a parameter passed to bmake (e.g. +dVS2005Dir=C:\...), which will cause registry check will be skipped. I recommend to open the mentioned mki file, it iluustrates well what and when is checked.

    Regards,

      Jan

  • Environment Variable MS

    Unknown said:
    C:\Program Files (x86)\Bentley\Program\MicroStation

    You may need to use Windows short file names (also known as DOS file names) that have no spaces.  Read this tip:

    http://www.la-solutions.co.uk/content/MDL/MdlDevelopmentEnvironment.htm#WindowsShortFileNames

     
    Regards, Jon Summers
    LA Solutions

  • Jon: I agree, but one thing is weird, I did a grep on the lib files, no one contain the string "mdlSystem_newDesignFile" isn't it wrong ?

  • If you do not mind, it might be a good idea to cover some basics (this is not meant to insult, it is mainly to make sure that these things have been done in the order they should be done in).

    Here are some simple steps to compile the MyApp application for a straight, out-of-the-box, default installation (if you change any of the folder locations during the installation of the MicroStation SDK, you will need to use the folder structure you selected in some of the steps below):

    1. Have Visual Studio 2005 installed

    2. Install MicroStation

    3. Install the MicroStation SDK that corresponds to the MicroStation release above -- see the Requirements section of the MicroStation SDK you have for the specifics

    4. Go to the Windows Start button, then All Programs > Bentley > MicroStation ... SDK > MicroStation Developer Shell
      (NOTE: On some Windows OSes, you should right-click on MicroStation Developer Shell and "Run as administrator". If you do not have that option, you should at least consider changing your Windows account User Access Control -- or UAC -- to a lower level through Control Panel > User Accounts)

    5. cd %homepath%\documents

    6. cd ..\MDLProjects... (this can be different from version to version of the MicroStation SDK)

    7. cd myapp

    8. bmake -dDLM_NO_SIGN

    Once you have done the above, again assuming defaults for everything, you should have an application that you can run in a MicroStation session.

    Could you confirm that is working for you?

      

  • Unknown said:
    I did a grep on the lib files ...

    Using the file search tool of my preferrred text editor, I found this:

    Searching for: mdlSystem_newDesignFIle
    mdlbltin.lib(475):
    mdlbltin.lib(1970): ^j
    mdlbltin.lib(21961):
    mdlbltin.lib(21962):
    mdlbltin.lib(21963):
    mdlbltin.lib(21964):
    Found 6 occurrence(s) in 1 file(s)

     
    Regards, Jon Summers
    LA Solutions

  • 1) I have Visutal studio 2005 Express Edition

    2) I have Microstation 08.05.02.70

    3) I have the sdk downloaded from here www.bentley.com/.../MicroStation+SDK.htm

    4) When I run "MicroStation Developer Shell" I have many errors, I fixed them by launching manually the script mstndevvars.bat with the correct argument.

    5) Into a mdl example "basic", I can run bmake +dVS2005Dir=C:\... I have an error "LINK : fatal error LNK1104: cannot open file 'C:\PROGRA~2\Bentley\Program\mdlapps\basic.dll'"

    I still cannot link my previous code, I keep continue to try

    Thank you guys for your attention.

  • This could be the source to a most of your problems.

    1. You really should use the full version of Visual Studio 2005. We did not test using the Express Edition, but given some of the differences we encountered when trying to use the 2008 full and Express versions, it would not surprise me one bit if that is part of the issue.

    2. You are using MicroStation V8 2004 Edition (v08.05...) unless there is a specific need to use that (10 years old), we really recommend using the most current release of MicroStation V8i -- that is certainly going to make it easier to create native code applications.

    3. The version of the SDK that you have is MicroStation V8i (v08.11.07). You really should use the same version series of MicroStation and MicroStation SDK -- the most recent for both is v08.11.09... there is a note on the page you reference that offers a significant hint regarding this:

    NOTE: The MicroStation SDK requires MicroStation V8to be installed to compile applications. It is recommended that you use the same 8-digit versions of MicroStation and MicroStation SDK. Refer to the MicroStation SDK ReadMe for more information.

    4. That could be because of a combination of the above three things.

    5. That could be because of a combination of the above four things.

    In short, I suspect if get a full version of Visual Studio 2005 and the latest releases of MicroStation and MicroStation SDK (and follow the recipe in a previous reply), that most -- if not all -- of your issues will go away.

      

Reply
  • This could be the source to a most of your problems.

    1. You really should use the full version of Visual Studio 2005. We did not test using the Express Edition, but given some of the differences we encountered when trying to use the 2008 full and Express versions, it would not surprise me one bit if that is part of the issue.

    2. You are using MicroStation V8 2004 Edition (v08.05...) unless there is a specific need to use that (10 years old), we really recommend using the most current release of MicroStation V8i -- that is certainly going to make it easier to create native code applications.

    3. The version of the SDK that you have is MicroStation V8i (v08.11.07). You really should use the same version series of MicroStation and MicroStation SDK -- the most recent for both is v08.11.09... there is a note on the page you reference that offers a significant hint regarding this:

    NOTE: The MicroStation SDK requires MicroStation V8to be installed to compile applications. It is recommended that you use the same 8-digit versions of MicroStation and MicroStation SDK. Refer to the MicroStation SDK ReadMe for more information.

    4. That could be because of a combination of the above three things.

    5. That could be because of a combination of the above four things.

    In short, I suspect if get a full version of Visual Studio 2005 and the latest releases of MicroStation and MicroStation SDK (and follow the recipe in a previous reply), that most -- if not all -- of your issues will go away.

      

Children
No Data