|
Hello,
i am trying to make a small benchmark application to figure out how much resources the programs i write consume, and i wonder what is the best way to do it.
I curently use the windows performance counters that are accessed via the registry base.
For exemple, to retrieve infos about the memory, i open the "VMM" perf counter, and query the values i need...
But, there is at least another way to do it :
using the GlobalMemoryStatus (MEMORYSTATUS mem_stat); function provided by Windows.
So, i would like to know what is the best way to go ? and what are the diferences between these two methods ?
Are there other ways to do this ? are they better ?
Thanks in advance,
Lion.
|
|
|
|
|
Hello
Anybody knows how to run program EXE from
resources having it loaded.
Without previous saving on disk.
Thanks
Konrad
|
|
|
|
|
Hello Konrad,
The source below shows how you can load the binary data of an EXE stored as a resource. After saving it to disk, you can run it via CreateProcess(), etc. The example saves CALC.EXE as resource type "EXEBIN" and of name "EXEBIN_CALC".
However, if you already know how to load a binary resource already and your aim is to run the binary data directly from memory, I do not think this would be possible.
With careful plumbing, you may be able to load some binary code from your EXE/DLL resource and execute it. This would still entail quite a number of restrictions, however.
#include <windows.h>
#include <stdio.h>
void main()
{
HRSRC hResourceThis = NULL;
HGLOBAL hGlobalResource = NULL;
LPVOID lpvResource = NULL;
DWORD dwLastError = 0;
hResourceThis = FindResourceEx
(
(HMODULE)NULL, // resource-module handle
(LPCTSTR)"EXEBIN", // pointer to resource type
(LPCTSTR)"EXEBIN_CALC", // pointer to resource name
(WORD)MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL) // resource language
);
if (hResourceThis)
{
hGlobalResource = (HGLOBAL)LoadResource
(
(HMODULE)NULL, // resource-module handle
(HRSRC)hResourceThis // resource handle
);
lpvResource = LockResource (hGlobalResource);
if (lpvResource)
{
FILE* fpw = NULL;
fpw = fopen ("c:\\resource_calc.exe", "wb");
if (fpw)
{
fwrite (lpvResource, sizeof(BYTE), SizeofResource(NULL, hResourceThis), fpw);
fclose (fpw);
}
}
}
if (hResourceThis)
{
CloseHandle (hResourceThis);
hResourceThis = NULL;
}
}
Hope the above helps, Konrad.
Best Regards,
Bio.
|
|
|
|
|
Hi, how do we change control properties on the run time? Say, when I click a button (caption="Start"), the button caption will change to "Stop", or it will hide other controls. And how do we know the legal properties of a control?
It`s so simple if I use VB6 but I don`t know how to do it with VC++. Thanks so much!
Regards,
|
|
|
|
|
You can use the functions GetWindowText and SetWindowText to change the caption of the button. You will want to do this in your handler for the WM_COMMAND message that has the same ID as your button control.
Chances are, that the same properties that you were able to use in VB are available when you program in C++. However, there is no easy way to see the properties that are available for a control. You will need to look in MSDN for more information on each control.
If you want to know how to hide controls you can use:
ShowWindow(hWnd, SW_HIDE);
where hWnd is the control that you want to hide. If you are doing this in a dialog box and you need to get the handle to one of your controls, use GetDlgItem . You pass the handle to the dialog that owns the control, and the control ID to this function, and it will return the handle to the control.
If you want to make that window appear again call:
ShowWindow(hWnd, SW_SHOW);
|
|
|
|
|
I'm trying to create a dialog bar with a tab control on it. Works well, both dialog bar and tab control are in place. Now in order to show something in the tab control, I show/hide dialogs. The problem is that the dialogs are located on the top left corner of the tab control, hiding the tabs. Any suggestions how to solve this?
I do it this way:
TabControl=(CTabCtrl*)DialogBar.GetDlgItem(IDC_TABCONTROL);
TabControl.InsertItem(0,"Test");
Pane1.Create(IDD_PANE1,TabControl);
Pane1.ShowWindow(SW_SHOW);
|
|
|
|
|
I want to know how to process a Word document using VBA.Can you tell me where are the information?thank you!
Besides VBA,which tools can do the same work,SQL?c++builder?
If you can find information about this,please tell me.
For i know little English,I hope you can tell me the particular web sites.Thank you very much!
huang chun shen
|
|
|
|
|
I want to know how to process a Word document using VBA.Can you tell me where are the information?thank you!
Besides VBA,which tools can do the same work,SQL?powerbuilder?
If you can find information about this,please tell me.
For i know little English,I hope you can tell me the particular web sites.Thank you very much!
|
|
|
|
|
What I have is a CAsyncSocket that listens for connections and creates another CAsyncSocket* using new to accept each incoming connection. Now when one of these new CAsyncSocket objects gets an OnClose() it needs to be deleted but you can't very well just 'delete this' since you are inside of the object itself. I am currently sending a message to my main wnd which then deletes it. This seems like a very sloppy way to me. Is there a PROPER way to do this that I might be overlooking?
Thanks,
Jack
|
|
|
|
|
You can always do this from within any class :-
delete this;
Nish
Bow wow wow,
Yippee yo yippee yay,
My miniputt high,
Is now 30 yay.
|
|
|
|
|
Thanks Nish,
I don't know why it didn't work for me before. Must have been some other error and I assumed you couldn't delete this.
-Jack
|
|
|
|
|
/moliate said
Of course you can't do it (call delete this) from inside a member function
You can do it inside of a member function, you just will not be able to call any more of the member variables for you class after you call delete . In fact the only way that delete this would work is if you were inside of a member function of that class. Otherwise the this pointer would not be valid.
Think about Release() in the IUnknown interface of COM, if you are familiar with this, it will call delete this if the reference count for its object reaches 0.
|
|
|
|
|
moliate wrote:
Of course you can't do it from inside a member function
On the contrary it is the reverse.
You can only do a delete this from a member function. Anywhere else this has no meaning.
Nish
Bow wow wow,
Yippee yo yippee yay,
My miniputt high,
Is now 30 yay.
|
|
|
|
|
I tried using COleDateTime::ParseDateTime(...) and VarDateFromStr(...) to parse a date/time string that contains *time zone* information (ET, CT, +4:00, GMT+4:00, etc...) but every time I do so I get "Invalid DateTime"
// code //////////////////////
COleDateTime dt;
CString sdate = "Feb 1 2002 17:05 +7:00"; // <- Time Zone string date
dt.ParseDateTime(sdate);
CString st2 = dt.Format("%H:%M"); // <- returns 'Invalid DateTime'
// -----------------------------
Is it just me (am I doing this wrong) or the
ParseDateTime is no good for time zones?
Is there any other way/method that could parse string
with time zone information (like: "Feb 1 2002 17:05 +7:00").
JScript and VC#.NET have no problem parsing date/time strings with time zone info, but I can't seem to parse date/time string in VC++.
Platform: WinXP Pro, VC++.NET (unmanaged)
Thanks in advance
Mike
|
|
|
|
|
From Visual C++ .NET documentation:
Remarks
If the string was successfully converted to a date/time value, the value of this COleDateTime object is set to that value and its status to valid.
Note Year values must lie between 100 and 9999, inclusively.
The lpszDate parameter can take a variety of formats. For example, the following strings contain acceptable date/time formats:
"25 January 1996"
"8:30:00"
"20:30:00"
"January 25, 1996 8:30:00"
"8:30:00 Jan. 25, 1996"
"1/25/1996 8:30:00"
Seems odd but you can't get it from ParseDateTime
- Matt Newman
-Sonork ID: 100.11179:BestSnowman
†
|
|
|
|
|
Ich suche eine kurze Lösung für das Problem.
Wie kann ich meinem Programm ein neues Aussehen verschaffen wie zB: Media Player im Kompaktmodus ...
Kurze Erklärung bitte.
|
|
|
|
|
Probier mal
http://www.codeproject.com/dialog/skinsyse.asp
ist ein gutes Programm, das mit Skins arbeitet. Solltest du dir mal ansehen.
Achja, das hier ist ein englisches Forum, normalerweise antwortet hier keiner auf Deutsch
Gruß
modified 12-Sep-18 21:01pm.
|
|
|
|
|
Please speak english...
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
Sorry, I already told him that this is an English board.
He just wanted to use skins in his app, so I recommended him a link and the question is therefore answered
regards
Gregor
modified 12-Sep-18 21:01pm.
|
|
|
|
|
Oops
I don't live far from germany (in Denmark), but I have to say that I don't understand a word of what you guys say/write...
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
Hi
Does anybody of you know a formula to calculate pixels of a bitmap created from 2 bitmaps using alpha blending?
Thanx
Wiizi
|
|
|
|
|
You may try this:
dst = src1 * alpha + (1 - alpha) * src2
alpha is a value from [0..1] range.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
THANKS for your prompt reply
What shall I use as dst and src1,2 ? (RGB,HSL,CMYK ...)
Could you suggest me some source code on the web ?
Thanks
Wiizi
|
|
|
|
|
|
Thanks
Wiizi
|
|
|
|