Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. X64 compilation problems

X64 compilation problems

Scheduled Pinned Locked Moved C / C++ / MFC
2 Posts 2 Posters 0 Views 1 Watching
  • 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.
  • V Offline
    V Offline
    Varghese Paul M
    wrote on last edited by
    #1

    I have some problems when porting a WIN32 project into 64-Bit using VS2008. 1. I am using many third party libraries in my WIN32 project in which one of them uses old iostream functions. It gives me linker error LNK1104: cannot open file 'LIBCIMT.LIB' when I compile in X64 mode. I have the source code of the library with me. I tried recompiling the third party library using the new iostream header files under VS2008, but it gives me compilation errors which seems to be some in-compatibility issues of new and old iostreams. 2. In my project, I use both SQL and MAPI. The project compiles and runs perfectly in WIN32 mode. But the same gives me compilation error C2371: 'BOOKMARK' : redefinition; different basic types Here is a sample code to reproduce the problem.

    #include "stdafx.h" #include <comdef.h> #include <atlbase.h> #include <sqlext.h> #include <mapix.h> int _tmain(int argc, _TCHAR* argv[]) { return 0; }

    All the header files are from the VS2008 installation folder. How do I solve these problem with minimal changes in my code Thanks in advance

    cheers Varghese Paul

    S 1 Reply Last reply
    0
    • V Varghese Paul M

      I have some problems when porting a WIN32 project into 64-Bit using VS2008. 1. I am using many third party libraries in my WIN32 project in which one of them uses old iostream functions. It gives me linker error LNK1104: cannot open file 'LIBCIMT.LIB' when I compile in X64 mode. I have the source code of the library with me. I tried recompiling the third party library using the new iostream header files under VS2008, but it gives me compilation errors which seems to be some in-compatibility issues of new and old iostreams. 2. In my project, I use both SQL and MAPI. The project compiles and runs perfectly in WIN32 mode. But the same gives me compilation error C2371: 'BOOKMARK' : redefinition; different basic types Here is a sample code to reproduce the problem.

      #include "stdafx.h" #include <comdef.h> #include <atlbase.h> #include <sqlext.h> #include <mapix.h> int _tmain(int argc, _TCHAR* argv[]) { return 0; }

      All the header files are from the VS2008 installation folder. How do I solve these problem with minimal changes in my code Thanks in advance

      cheers Varghese Paul

      S Offline
      S Offline
      Stuart Dootson
      wrote on last edited by
      #2

      Varghese Paul M wrote:

      1. I am using many third party libraries in my WIN32 project in which one of them uses old iostream functions. It gives me linker error LNK1104: cannot open file 'LIBCIMT.LIB' when I compile in X64 mode. I have the source code of the library with me. I tried recompiling the third party library using the new iostream header files under VS2008, but it gives me compilation errors which seems to be some in-compatibility issues of new and old iostreams.

      That sounds about right. I suspect you're going to have to bite the bullet & just start going through them, fixing them. One thing to remember is that (IIRC) old iostreams weren't in the std namespace, new ones are. Also - this page has some handy migration hints[^].

      Varghese Paul M wrote:

      2. In my project, I use both SQL and MAPI. The project compiles and runs perfectly in WIN32 mode. But the same gives me compilation error C2371: 'BOOKMARK' : redefinition; different basic types Here is a sample code to reproduce the problem.

      You were lucky before. MAPI and SQL both define BOOKMARK. They happened to both be 32-bit, but now they're not. The only things I can suggest are 1) separating SQL and MAPI functionality into separate source files, or 2) putting (say) the MAPI stuff into a namespace like this:

      namespace MAPI
      {
      #include <mapix.h>
      }

      and either using using namespace MAPI; or explicitly identifying things in this new MAPI namespace.

      Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups