1) Write a exe program that uses your COM. 2) Launch the exe. 3) Open your COM Project is Visual Studio 4) Attach the already running exe with the Project. 5) Keep the break points and start debugging it.
see am not able to understand the 4th step. attach in the sense by changing the configuration properties in that debugging and then command and passing the path of the exe. if this the way then its control not coming to break point or i may be wrong to the exe ....
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
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 idreturn hr;
its in a function name STDAPI DllRegisterServer(void) the control not coming in this function what might be cause please reply
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
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
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.