|
no i have .exe file , which i want to register with windows as windows service.
What should i type on command prompt to register it as a service.
thanks.
|
|
|
|
|
|
use command "servicefullpath" -service ,from commandline
prasad
|
|
|
|
|
I want to use IActiveDesktop and have some problems.a dialog based project, codes as below:
stdafx.h:
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <wininet.h> //???
#include <afxdisp.h> // MFC Automation classes
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
MyTestDlg.cpp:
#include <shlobj.h> // IActiveDesktop
but the comiler says:IActiveDesktop is not defined,why?
|
|
|
|
|
IActiveDesktop is defined in shlobj.h. This file is part of the Platform SDK. Are you #including this file?
Regards,
John
|
|
|
|
|
my codes as below:
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <wininet.h> //!!!
#include <afxdisp.h> // MFC Automation classes
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
MyTestDlg.cpp:
#include <shlobj.h> // IActiveDesktop
BOOL CMyTestDlg::EnableActiveDesktop(BOOL bEnable)
{
HRESULT hr;
IActiveDesktop* pIAD;//Error
.....
}
|
|
|
|
|
Hope this helps.
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <wininet.h>
#include <shlobj.h>
int main (int argc, char* argv[])
{
CoInitialize(NULL);
HRESULT hr;
IActiveDesktop* pAD;
hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER, IID_IActiveDesktop, (void**)&pAD);
CoUninitialize();
return 0;
}
Regards,
John
|
|
|
|
|
|
stdafx.h:
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afxwin.h> // MFC core and standard components
#include <wininet.h> //!!!
#include <shlobj.h> // IActiveDesktop
#include <afxext.h> // MFC extensions
#include <afxdisp.h> // MFC Automation classes!!!!
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
and I have also added the:#define _WIN32_WINNT 0x0500
it still has those error
|
|
|
|
|
Please fix the < and > symbols so that we can see what you are including, or at least preview your post beforehand.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__F616AF35_2179_40AC_8519_68448B090F9D__INCLUDED_)
#define AFX_STDAFX_H__F616AF35_2179_40AC_8519_68448B090F9D__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include afxwin.h
#include wininet.h
#include shlobj.h
#include afxext.h // MFC extensions
#include afxdisp.h // MFC Automation classes
#include afxdtctl.h // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include afxcmn.h // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__F616AF35_2179_40AC_8519_68448B090F9D__INCLUDED_)
// MyTestDlg.cpp : implementation file
//
#include "stdafx.h"
#include "MyTest.h"
#include "MyTestDlg.h"
#include "MyClass.h"
#include "Tracer.h"
#include "CompressPicture.h"
#include "MyDlg.h"
#include shellapi.h
#include psapi.h
void CMyTestDlg::OnButtonOk()
{
IActiveDesktop* p=NULL;
.....
}
the symbols of < and > can not be shown here
|
|
|
|
|
Have you looked in shlobj.h to see what other constraints might be keeping IActiveDesktop from being defined? You've indicated that _WIN32_WINNT has been defined, but was it defined before shlobj.h was included?
yingkou wrote:
the symbols of < and > can not be shown here
Sure they can. Have you not been seeing them in other's posts?
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
#define _WIN32_WINNT 0x0500
#include afxwin.h // MFC core and standard components
#include wininet.h
#include shlobj.h // IActiveDesktop
|
|
|
|
|
Consider this code extract:
.
:
.
m_hLocal = ::LocalAlloc(LHND, sizeof(DLGTEMPLATE) + (sizeof(WORD) * 2) + sizeof(szDlgCaption));
if(!m_hLocal)
return FALSE;
pOut = pBuffer = (BYTE *)::LocalLock(m_hLocal);
if(!pBuffer)
{
::LocalFree(m_hLocal);
return FALSE;
}
memcpy((void*)pOut, (void*)&DlgTemplate, sizeof(DlgTemplate));
pOut += sizeof(DlgTemplate);
*(WORD*)pOut = 0;
*(WORD*)(pOut + 1) = 0;
pOut += (sizeof(WORD) << 1);
memcpy((void*)pOut, (void*)szDlgCaption, sizeof(szDlgCaption));
if((bRetVal = CreateIndirect((DLGTEMPLATE*)pBuffer)))
{
m_pPrompt = new CXDebugPrompt;
m_pConsole = new CXConsole(0x0000d200, 0x00000000);
ASSERT(m_pPrompt != NULL);
ASSERT(m_pConsole != NULL);
GetClientRect(&rect);
if(!m_pConsole->Create(IDD_DEBUG_CONSOLE, this, &rect))
bRetVal = FALSE;
if(!::LocalUnlock(m_hLocal))
XDEBUG_INFO("CXDebugConsole::Setup could not unlock Local Memory used in dialog creation\n");
else
.
:
.
In this extract you can see I am requesting Windows for Local memory allocation and locking (at the beginning). If it allocates and locks flawlessly, it then proceeds with what its meant to do, and, when the memory is finally no longer needed, it attempts to free it.
This is where it goes wrong!
Not only can I not Unlock the memory but also I can't Free it.
My question is, seeing I am creating a modeless-dialogbox, would it be possible, somehow, that CreateIndirect() (or a low-level Win32 API method) be already deallocating the memory for me? I am confused because CreateIndirect does not receive the memory handle held by m_hLocal , although it does receive a pointer to the dialog template...
Thank you so much!
David Nimrod
|
|
|
|
|
dNimrod#X wrote:
Not only can I not Unlock the memory but also I can't Free it.
This is because you are incrementing pOut (which is supposed to point to the memory block that was allocated) to some invalid address.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Hi, I've written a class that is used by an MFC app and a standard win32 dll.
The MFC app requires: #include "stdafx.h" //mfc precompiled headers
The standard win32 dll does not and it will cause problems if it is included.
Rather than have two copies of the class, i want to conditionaly include based on a #define
I have tried
#ifdef MFC
#include "stdafx.h"
#endif
but the compiler says: fatal error C1020: unexpected #endif
There must be a simple solution for this, please advise - thanks
Carl
|
|
|
|
|
Turn off precompiled headers in the project settings.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
That's not really the solution i am looking for.
Carl
|
|
|
|
|
Which implies that you already know of a solution and are just looking for confirmation. If your project has constraints, it helps to convey those so that you don't receive help that is of no value to you.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
DavidCrow wrote:
Which implies that you already know of a solution
Well not really, i think your somewhat tactless with your comments. What i am trying to achieve would mean someone with and existing MFC app that uses pre compiled headers AND someone that has no need for MFC could equally use my class by simply adding an MFC #define.
I don't know for sure that this is possible, but it does seem logical.
Carl
|
|
|
|
|
crandall wrote:
Well not really, i think your somewhat tactless with your comments.
Perhaps you misunderstood. A suggestion was given to you and you stated that "That's not really the solution i am looking for." That implies, at least to me, that you already know of a solution.
If you've been on the CP forums for any amount of time at all, you will have noticed a trend among posters where they provide as little information as possible about their problem, and the thread drags on for several dozen posts. If they had laid the problem out in as much detail as possible from the beginning, a lot of time/posts/questions could have been avoided. That is what was meant by my "If your project has constraints, it helps to convey those so that you don't receive help that is of no value to you." reply. I do not see how you can consider that "tactless."
crandall wrote:
...someone that has no need for MFC could equally use my class by simply adding an MFC #define.
If someone had no need for MFC, why would they add an MFC #define? That does not seem logical.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
I have a class.
I want to use the class in a standard win32 dll and a project built with MFC.
If i don't include the stdafx.h in the class, the MFC project complains i can't see the precompiled headers.
I would prefer not to turn off precompiled headers in the MFC project.
I don't want to include them for applications that will usr the class that do not rely on MFC.
I am hoping to find a preprocessor command i can include in the class to minimize the class user changing anything.
thanks - Carl
|
|
|
|
|
thanks for that Christian, if it comes to it i'll have to resort to this but i'm trying to find a way to avoid it and primarily put the burden on the class itself.
Regards
Carl
|
|
|
|
|
try
#if defined MFC
#include "stdafx.h"
#endif
|
|
|
|
|
exactly the same error message
Carl
|
|
|
|