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. Debugging Dll

Debugging Dll

Scheduled Pinned Locked Moved C / C++ / MFC
comdebuggingtutorial
14 Posts 3 Posters 1 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.
  • L Lost User

    You can debug your code by loading the DLL directly into your application rather than using it in registered mode: see the CoLoadLibrary function[^].

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

    hi ,thanks ... one more thing i want to ask how to register the dll . am getting the error message that DLL has loaded but entry point DllRegisterserver was not found ... but am wtritten the code for it

    AFX_MANAGE_STATE(AfxGetStaticModuleState( ));

    HRESULT hr = RegisterServer (AfxGetInstanceHandle(),   // handle to dll module
                                 CLSID\_CCmpnt,	      // component CLSID
    			     g\_szFriendlyName,	      // friendly name
    			     g\_szVerIndProgID,	      // version independent prog id
    			     g\_szVerDndProgID);		// version dependent prog id
    
    
    
    return hr;
    

    its in a function name STDAPI DllRegisterServer(void) the control not coming in this function what might be cause please reply Best Regards Sarfaraz

    L 1 Reply Last reply
    0
    • S sarfaraznawaz

      hi ,thanks ... one more thing i want to ask how to register the dll . am getting the error message that DLL has loaded but entry point DllRegisterserver was not found ... but am wtritten the code for it

      AFX_MANAGE_STATE(AfxGetStaticModuleState( ));

      HRESULT hr = RegisterServer (AfxGetInstanceHandle(),   // handle to dll module
                                   CLSID\_CCmpnt,	      // component CLSID
      			     g\_szFriendlyName,	      // friendly name
      			     g\_szVerIndProgID,	      // version independent prog id
      			     g\_szVerDndProgID);		// version dependent prog id
      
      
      
      return hr;
      

      its in a function name STDAPI DllRegisterServer(void) the control not coming in this function what might be cause please reply Best Regards Sarfaraz

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #6

      I don't see any declaration of DllRegisterServer()[^] in the above.

      S 1 Reply Last reply
      0
      • L Lost User

        I don't see any declaration of DllRegisterServer()[^] in the above.

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

        STDAPI DllRegisterServer(void) this i used in this only i written the code

        L 1 Reply Last reply
        0
        • S sarfaraznawaz

          STDAPI DllRegisterServer(void) this i used in this only i written the code

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #8

          Used where? Please show the actual declaration. Also make sure that you are exporting this correctly in your build.

          S 1 Reply Last reply
          0
          • L Lost User

            Used where? Please show the actual declaration. Also make sure that you are exporting this correctly in your build.

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

            hi thanks again now its getting register. i was not exporting correctly .. The dll i wrote for the context menu this is done in 32 bit machine but in 64 bit machine the context menu is not coming ... what might be the problem

            L 1 Reply Last reply
            0
            • S sarfaraznawaz

              hi thanks again now its getting register. i was not exporting correctly .. The dll i wrote for the context menu this is done in 32 bit machine but in 64 bit machine the context menu is not coming ... what might be the problem

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #10

              sarfaraznawaz wrote:

              the context menu is not coming ...
              what might be the problem

              Any one of a million things. As I just said to someone else in these forums, you need to give specific details, don't expect people to be able to guess what is happening in your code.

              S 1 Reply Last reply
              0
              • L Lost User

                sarfaraznawaz wrote:

                the context menu is not coming ...
                what might be the problem

                Any one of a million things. As I just said to someone else in these forums, you need to give specific details, don't expect people to be able to guess what is happening in your code.

                S Offline
                S Offline
                sarfaraznawaz
                wrote on last edited by
                #11

                ok sorry .. the code i build in 32 bit its success but when i configure the VS 2010 for 64 bit the error message con not instantiate the HRESULT IContextMenu::GetCommandString(UINT_PTR,UINT,UINT *,LPSTR,UINT)' : is abstract see declaration of 'IContextMenu::GetCommandString' why this conflict

                L 1 Reply Last reply
                0
                • S sarfaraznawaz

                  ok sorry .. the code i build in 32 bit its success but when i configure the VS 2010 for 64 bit the error message con not instantiate the HRESULT IContextMenu::GetCommandString(UINT_PTR,UINT,UINT *,LPSTR,UINT)' : is abstract see declaration of 'IContextMenu::GetCommandString' why this conflict

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #12

                  No idea, once again there is not enough information for me to guess.

                  S 1 Reply Last reply
                  0
                  • L Lost User

                    No idea, once again there is not enough information for me to guess.

                    S Offline
                    S Offline
                    sarfaraznawaz
                    wrote on last edited by
                    #13

                    In DLL i have written the code for Context menu in vs2010 using COM i derived the class CRsEraser : public IContextMenu, public IShellExtInit this IShellExtInit and IContextMenu is are com class when use it HRESULT __stdcall CCmpntFactory::CreateInstance (IUnknown *pUnknownOuter, const IID& iid, void** ppv) { if(pUnknownOuter != NULL) return CLASS_E_NOAGGREGATION; CRsEraser *pCmpnt = new CRsEraser; if (pCmpnt == NULL) return E_OUTOFMEMORY; HRESULT hr = pCmpnt->QueryInterface (iid, ppv); ////////////////////////////////////////////////////////////////////////// // Release the IUnknown pointer pCmpnt->Release (); return hr; } CRsEraser *pCmpnt = new CRsEraser;this part showing its abstract class . in 32 bit compile its working fine same when configure to 64 bit its throwing the error what i have mention earlier . how i configure: 1 Open your Visual C++ Solution 2 Choose Build->Configuration Manager menu 3 Inside the Configuration Manager window, change the ‘Active solution platform’ to x64. If you don’t have any, you would need to create one by selecting the ‘New..’ drop down item. Copy settings from your Win32 platform. 4 Now rebuild your solution.

                    S 1 Reply Last reply
                    0
                    • S sarfaraznawaz

                      In DLL i have written the code for Context menu in vs2010 using COM i derived the class CRsEraser : public IContextMenu, public IShellExtInit this IShellExtInit and IContextMenu is are com class when use it HRESULT __stdcall CCmpntFactory::CreateInstance (IUnknown *pUnknownOuter, const IID& iid, void** ppv) { if(pUnknownOuter != NULL) return CLASS_E_NOAGGREGATION; CRsEraser *pCmpnt = new CRsEraser; if (pCmpnt == NULL) return E_OUTOFMEMORY; HRESULT hr = pCmpnt->QueryInterface (iid, ppv); ////////////////////////////////////////////////////////////////////////// // Release the IUnknown pointer pCmpnt->Release (); return hr; } CRsEraser *pCmpnt = new CRsEraser;this part showing its abstract class . in 32 bit compile its working fine same when configure to 64 bit its throwing the error what i have mention earlier . how i configure: 1 Open your Visual C++ Solution 2 Choose Build->Configuration Manager menu 3 Inside the Configuration Manager window, change the ‘Active solution platform’ to x64. If you don’t have any, you would need to create one by selecting the ‘New..’ drop down item. Copy settings from your Win32 platform. 4 Now rebuild your solution.

                      S Offline
                      S Offline
                      sarfaraznawaz
                      wrote on last edited by
                      #14

                      please help me out of this ... dll is getting register in 32 bit machine same code i compile on 64 bit machine but failing to register

                      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