|
i have made a setup and deployment project named "myTry1"
which contains "xyz.exe" at a location specified . the location is being asked in a GUI that starts when i click the setup icon generated in the Debug folder of "myTry1"
Requirement:
I donot need the GUI to appear as my final location/path is fixed.
I just need a command line based process instead of GUI(Graphical User Interface).
I am new to this topic "Set up and Deployment projects"
plz give suggestion as quickly as possible , i need it very quickly.
Thankyou!
kapardhi
|
|
|
|
|
Kapardhi : I got the solution thanks !
|
|
|
|
|
I am testing one application in vista platform and found that SetWindowsHookEx function fails in VISTA.
SetWindowsHookEx return NULL.
journalHook = SetWindowsHookEx(WH_JOURNALPLAYBACK, (HOOKPROC)WDChangeProc, hInst, 0);
Thanks in advance.
Yes U Can ...If U Can ,Dream it , U can do it ...ICAN
|
|
|
|
|
from MSDN [^]:
Return Value
If the function succeeds, the return value is the handle to the hook procedure.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
Anyway one may guess that elevation is needed there.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
|
Thanks Xing Chen,
I read this but not find any suitable solution but now my problem is solved by disabling UAC in Vista.
Yes U Can ...If U Can ,Dream it , U can do it ...ICAN
|
|
|
|
|
Hi all,
Please help me...
I am have written below function in which I am calling repeated as per my requirement..
typedef HRESULT (*PROCHICON)(HICON*);
typedef CString (*PROCCSTRNAME)();
typedef CString (*PROCCSTRCONT)(CString);
LoadButtonPluginDLL(CString DLLPath,CString &ButtonText,HICON &ImageHandle,CString &ButtonContent)
{
PROCHICON ProcButtonHicon;
PROCCSTRNAME ProcButtonName;
PROCCSTRCONT ProcButtonContent;
HINSTANCE hLib = ::LoadLibrary(DLLPath);
if(hLib==NULL)
{
MessageBox(_T("Fails To Load Dll"));
return;
}
ProcButtonHicon =(PROCHICON)::GetProcAddress(hLib,"GetButtonImage");
if(ProcButtonHicon == NULL)
{
::FreeLibrary(hLib);
CoUninitialize();
return;
}
ProcButtonName =(PROCCSTRNAME)::GetProcAddress(hLib,"GetButtonText");
if(ProcButtonName == NULL)
{
::FreeLibrary(hLib);
CoUninitialize();
return;
}
ProcButtonContent= (PROCCSTRCONT)::GetProcAddress(hLib,"GetPluginContent");
if(ProcButtonContent == NULL)
{
::FreeLibrary(hLib);
CoUninitialize();
return;
}
((PROCHICON)ProcButtonHicon)(&ImageHandle);
ButtonText =((PROCCSTRNAME)ProcButtonName)();
ButtonContent =((PROCCSTRCONT)ProcButtonContent)("1");
if(hLib)
FreeLibrary(hLib);
}
When I callabove function first time it works fine I get proper values in ImageHandle,ButtonText,ButtonContent from dll. but when I call this function second time and after calling FreeLibrary(hLib);variables ButtonText & ButtonContent become BadPtr and I can't use these values out side the function.
modified on Friday, August 1, 2008 4:47 AM
|
|
|
|
|
1. Please use code block button to surround code snippets with <pre> tags.
2. Why do you need to initialise COM library?
3. Why do you load the DLL and unload it inside your function body (overhead)?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Thanks for reply
Actually this thing is some what new for me
so while doing some R&D to overcome this problem I have initialize Com library, I think it is not necessary ..
>3. Why do you load the DLL and unload it inside your function body (overhead)?
- At runtime Dynamically my dll names & path will also be varying thats why I am Loading & Unloading DLL inside my function only.
this bug I am facing when I am calling this function for same dll, second time. I think my dlls are not getting freed properly in first call of this function.
Please help me...
|
|
|
|
|
Could you please edit the OP and reformat your code as requested?
Is the DLL 's code yours (Are you properly doing cleanup inside it?)?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
thanks you for reply..
Code is reformatted please check..
the DLL's code is written by my team member,I need to check with him..
but it is working properly for ImageHandle which is passed by reference in this function. It is causing problem with ButtonText & ButtonContent only...
|
|
|
|
|
Rahul Vaishnav wrote: Code is reformatted please check..
the DLL's code is written by my team member,I need to check with him..
but it is working properly for ImageHandle which is passed by reference in this function. It is causing problem with ButtonText & ButtonContent only...
Well, since the DLL 's source code is available you may debug the whole thing.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[Image resize DLL]
|
|
|
|
|
Ok I will debug it
Thank you very much for reply..
bye
|
|
|
|
|
Rahul Vaishnav wrote: ((PROCHICON)ProcButtonHicon)(&ImageHandle);
ButtonText =((PROCCSTRNAME)ProcButtonName)();
ButtonContent =((PROCCSTRCONT)ProcButtonContent)("1");
This is a very odd way of calling functions. Why not:
ProcButtonHicon(&ImageHandle);
ButtonText = ProcButtonName();
ButtonContent = ProcButtonContent("1"); Rahul Vaishnav wrote: if(hLib)
Redundant check.
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
I had a similar problem: Access violations caused by bad pointers after having freed a dll with FreeLibrary. Your problem sounds just the same.
The problem was, the dll and the exe each had its own copy of the c-runtime-library and each c-runtime-library had its own heap. Freeing the dll also freed its heap and all dynamically allocated memory.
To overcome this problem: Free memory where it had been allocated
Her is the link about the 'FreeLibrary problem' where i found the answer to the problem:
http://java.codeproject.com/Feature/SubtleBugs.aspx?fid=1647&msg=2660410
|
|
|
|
|
Thanks you for your reply..
I was on leave thats why I couldnt reply..?
I will go through this link..
Thanks you.
|
|
|
|
|
In the MSDN, it says below:
lpszIcon
Identifies an icon resource. This parameter can be either a null-terminated string or an integer resource identifier passed to the MAKEINTRESOURCE macro.
To load one of the standard system-defined icons, set the hInstance member to NULL and set lpszIcon to one of the values listed with the LoadIcon function.
This member is ignored if the dwStyle member does not specify the MB_USERICON flag.
MSGBOXPARAMS msgparam = {0};
msgparam.cbSize = sizeof(MSGBOXPARAMS);
msgparam.hwndOwner = NULL;
msgparam.lpszText = _T("text");
msgparam.lpszCaption = _T("caption");
msgparam.dwStyle = MB_USERICON | MB_OK;
msgparam.hInstance = NULL;
msgparam.lpszIcon = ::LoadIcon(NULL, IDI_WINLOGO); <font color="blue">I want to use as the MSDN says.Actually I know it will compile error.</font>
::MessageBoxIndirect(&msgparam);
<pre>
|
|
|
|
|
What is the problem ? What is your question in fact ?
Di you have a compilation error ? If yes, why don't you simply put the exact error message so we can try to help you ?
|
|
|
|
|
//msgparam.lpszIcon = ::LoadIcon(NULL, IDI_WINLOGO);
msgparam.lpszIcon = MAKEINTRESOURCE(IDI_WINLOGO);
The MSDN has fooled me, or I misunderstand the MSDN words, I should just use MAKEINTRESOURCE, not using ::LoadIcon.
|
|
|
|
|
msgparam.lpszIcon = (LPCTSTR)::LoadIcon(NULL, IDI_WINLOGO);
[added]
BTW: see here [^].
[/added]
[added]
BTW2: Xing Chen's solution [^] actually works.
[/added]
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
modified on Friday, August 1, 2008 3:52 AM
|
|
|
|
|
set lpszIcon to one of the values listed with the LoadIcon function means:
lpszIcon can be one of these value:
IDI_APPLICATION
IDI_ASTERISK
IDI_ERROR
IDI_EXCLAMATION
IDI_HAND
IDI_INFORMATION
IDI_QUESTION
IDI_WARNING
IDI_WINLOGO
so you can use them directly.
msgparam.lpszIcon = IDI_WINLOGO;
|
|
|
|
|
Hello,
I made a dll that has a bunch of functions called from a console application. One of them creates a CFrameWnd window. Inside the function that creates my CFrameWnd, I can create a CToolBar object. However I now want the user of the dll (the creator of the console application) to be able to attach a customized CToolBar object to that window (instead of the default CToolBar object that I created during window creation inside the dll). So I thought I simply create the customized CToolBar object in the client application (console application) in the same way I did in the dll function. That however does not seem to work: in release mode the toolbar appears, but doesn't have any bitmap, in debug mode, I get debug assertion errors because of unexisting resource or instance handles.
Following few lines in my console application are impossible to execute without assertion errors in debug mode:
CToolBar* toolBar=new CToolBar();
toolBar->CreateEx((CFrameWnd*)dllFunctionGetFrameWnd(),TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_SIZE_DYNAMIC|CBRS_TOP|WS_CLIPCHILDREN|WS_CLIPSIBLINGS);
toolBar->LoadToolBar(IDR_TOOLBAR1);
toolBar->SetWindowText("Toolbar");
toolBar->EnableDocking(CBRS_ALIGN_TOP);
Anyone knows a workaround? Or can anyone propose an alternative solution to my problem?
|
|
|
|
|
FloatingMarc wrote: a bunch of functions called from a console application. One of them creates a CFrameWnd window
You need to look at the assertions and the code where they occur.
You should see what's going wrong.
You need to make sure you're making the right kind of DLL if
you're using MFC in a DLL. All the info you need to do this
can be found here: Kinds ofDLLs[^]
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hai all
Just i want to develop a apllication that track the amount of data transferred while I am on net, both sent and recieved. It will also keep monthly records on each time log-in basis, so that I can get my usage data.
If You have any Ideas pleas share with me
Thanks & Regards
Vicky000000
|
|
|
|
|