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. porting 32 bit dll in 64 bit

porting 32 bit dll in 64 bit

Scheduled Pinned Locked Moved C / C++ / MFC
csharpvisual-studiocomwindows-admintutorial
14 Posts 4 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.
  • S Sarath C

    Can you run the program as administrator?

    -Sarath. "Great hopes make everything great possible" - Benjamin Franklin

    My blog - Sharing My Thoughts

    S Offline
    S Offline
    subramanyeswari
    wrote on last edited by
    #5

    Hi, I run the program as administrator. Then I tried compiling solution in the vista 64it. It gave “error PRJ0019: A tool returned an error code from "Performing registration"”. When I comment the following code

    STDAPI DllRegisterServer(void)
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    // registers object, typelib and all interfaces in typelib
    return _Module.RegisterServer(TRUE); //this is what I commented
    return TRUE

    }

    it compiled successfully. This is com dll which is working fine in 32 bit. what should i do now? Regards, Subramanyeswari

    S 1 Reply Last reply
    0
    • S subramanyeswari

      Hi, I run the program as administrator. Then I tried compiling solution in the vista 64it. It gave “error PRJ0019: A tool returned an error code from "Performing registration"”. When I comment the following code

      STDAPI DllRegisterServer(void)
      {
      AFX_MANAGE_STATE(AfxGetStaticModuleState());
      // registers object, typelib and all interfaces in typelib
      return _Module.RegisterServer(TRUE); //this is what I commented
      return TRUE

      }

      it compiled successfully. This is com dll which is working fine in 32 bit. what should i do now? Regards, Subramanyeswari

      S Offline
      S Offline
      Sarath C
      wrote on last edited by
      #6

      This could be some dependency issue. Check the dependecy of the DLLs/components associated with this COM DLL and ensure that it's built using 64 bit environment. Check with Dependency Walker[^]tool ( 64 bit version is available). Also try manually using regsvr

      -Sarath. "Great hopes make everything great possible" - Benjamin Franklin

      My blog - Sharing My Thoughts

      S 1 Reply Last reply
      0
      • S Sarath C

        This could be some dependency issue. Check the dependecy of the DLLs/components associated with this COM DLL and ensure that it's built using 64 bit environment. Check with Dependency Walker[^]tool ( 64 bit version is available). Also try manually using regsvr

        -Sarath. "Great hopes make everything great possible" - Benjamin Franklin

        My blog - Sharing My Thoughts

        S Offline
        S Offline
        subramanyeswari
        wrote on last edited by
        #7

        Hi, Thanks for your suggestion. I ran dependency walker in 2003 64 bit for my dll. it displayed two errors in the following dlls DEVMGR.DLL DWMAPI.DLL. it says "error opening file". Don't we have these dll's along with 64 bit 2003 os? Regards

        S 1 Reply Last reply
        0
        • S subramanyeswari

          Hi, Thanks for your suggestion. I ran dependency walker in 2003 64 bit for my dll. it displayed two errors in the following dlls DEVMGR.DLL DWMAPI.DLL. it says "error opening file". Don't we have these dll's along with 64 bit 2003 os? Regards

          S Offline
          S Offline
          Sarath C
          wrote on last edited by
          #8

          I don't know about DWMAPI.DLL but the other one should be there in the system folder. Do one thing, in the 32 bit system, try to track down, from where these files are getting resolved using depends. Then you can try the same thing in 64-bit environment also

          -Sarath. "Great hopes make everything great possible" - Benjamin Franklin

          My blog - Sharing My Thoughts

          S 2 Replies Last reply
          0
          • S Sarath C

            I don't know about DWMAPI.DLL but the other one should be there in the system folder. Do one thing, in the 32 bit system, try to track down, from where these files are getting resolved using depends. Then you can try the same thing in 64-bit environment also

            -Sarath. "Great hopes make everything great possible" - Benjamin Franklin

            My blog - Sharing My Thoughts

            S Offline
            S Offline
            subramanyeswari
            wrote on last edited by
            #9

            thanks.. i will do that now.

            1 Reply Last reply
            0
            • S Sarath C

              I don't know about DWMAPI.DLL but the other one should be there in the system folder. Do one thing, in the 32 bit system, try to track down, from where these files are getting resolved using depends. Then you can try the same thing in 64-bit environment also

              -Sarath. "Great hopes make everything great possible" - Benjamin Franklin

              My blog - Sharing My Thoughts

              S Offline
              S Offline
              subramanyeswari
              wrote on last edited by
              #10

              Hi Sarath, I created the application by following the below link http://www.codeproject.com/KB/shell/shellextguide1.aspx?fid=519&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2469014#modifyingmenu[^] but the same is not working in my 64 bit windows 2003 server. How to migrate this application? Regards

              S 1 Reply Last reply
              0
              • S subramanyeswari

                Hi Sarath, I created the application by following the below link http://www.codeproject.com/KB/shell/shellextguide1.aspx?fid=519&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2469014#modifyingmenu[^] but the same is not working in my 64 bit windows 2003 server. How to migrate this application? Regards

                S Offline
                S Offline
                Sarath C
                wrote on last edited by
                #11

                I can't figure out what's really happening there. The IContextMenu inteface should work well with your application. Have properly set set _WIN32_WINNT and WINVER macros? According to your target OS? Using the Windows Headers[^]

                -Sarath. "Great hopes make everything great possible" - Benjamin Franklin

                My blog - Sharing My Thoughts

                S 1 Reply Last reply
                0
                • S Sarath C

                  I can't figure out what's really happening there. The IContextMenu inteface should work well with your application. Have properly set set _WIN32_WINNT and WINVER macros? According to your target OS? Using the Windows Headers[^]

                  -Sarath. "Great hopes make everything great possible" - Benjamin Franklin

                  My blog - Sharing My Thoughts

                  S Offline
                  S Offline
                  subramanyeswari
                  wrote on last edited by
                  #12

                  is this the following code that i have to make in stdafx.h

                  #ifndef _WIN32_WINNT NTDDI_VERSION
                  #define _WIN32_WINNT NTDDI_VISTASP1
                  #endif

                  #ifndef _WIN32_IE
                  #define _WIN32_IE 0x0700
                  #endif

                  after making the above change i am getting the following error error C1189: #error : _WIN32_WINNT settings conflicts with _WIN32_IE setting c:\program files\microsoft sdks\windows\v6.0a\include\sdkddkver.h it is failing here #if ((_WIN32_WINNT < _WIN32_WINNT_WIN2K) && (_WIN32_IE > _WIN32_IE_IE60SP1)) #error _WIN32_WINNT settings conflicts with _WIN32_IE setting #endif I am working on vistasp1 what could be the problem Regards

                  modified on Friday, February 13, 2009 10:22 AM

                  H 1 Reply Last reply
                  0
                  • S subramanyeswari

                    is this the following code that i have to make in stdafx.h

                    #ifndef _WIN32_WINNT NTDDI_VERSION
                    #define _WIN32_WINNT NTDDI_VISTASP1
                    #endif

                    #ifndef _WIN32_IE
                    #define _WIN32_IE 0x0700
                    #endif

                    after making the above change i am getting the following error error C1189: #error : _WIN32_WINNT settings conflicts with _WIN32_IE setting c:\program files\microsoft sdks\windows\v6.0a\include\sdkddkver.h it is failing here #if ((_WIN32_WINNT < _WIN32_WINNT_WIN2K) && (_WIN32_IE > _WIN32_IE_IE60SP1)) #error _WIN32_WINNT settings conflicts with _WIN32_IE setting #endif I am working on vistasp1 what could be the problem Regards

                    modified on Friday, February 13, 2009 10:22 AM

                    H Offline
                    H Offline
                    hareshel
                    wrote on last edited by
                    #13

                    I am also facing same issue...I have ported my activex plugin to 64bit by compiling with x64. it has created .ocx file as well as .dll file. Created cab and inf file to install my activex plugin. When i install it crashes. I ran dependency walker on .ocx file it says two dlls not found... devmgr.dll dwmapi.dll please let me know how to resolve....

                    1 Reply Last reply
                    0
                    • S Sarath C

                      Can't you debug the code and see what's happening? Following topics can put some light on your issue. Wow64[^] Converting 32-bit Applications Into 64-bit Applications: Things to Consider [^] Porting your program[^] but it poorly documented I think...

                      -Sarath. "Great hopes make everything great possible" - Benjamin Franklin

                      My blog - Sharing My Thoughts

                      S Offline
                      S Offline
                      SELVA KUMAR R
                      wrote on last edited by
                      #14

                      Hi, TO run a web application with 32bit dll in an 64 bit server, just in the IIS, "enable 32-bit application" to true for the application pool. This seting will work almost all servers expect SBS server.

                      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