|
Hello again!
Thank you for your adwises
The real task I want to test is to append buffB to buffA. Asume there is a function-call that gives me 2 pointers to buffers (p_buffA and p_buffB) and the size of each of them (n_A and n_B). The function should retur the new pointer to buffA and the new size (f.e. saved in a struct).
Now I am using c++ new / delete to allocate and free memory.
<br />
int n_A = 30; <br />
char* p_buffA = new char[n_A];<br />
memset(p_buffA, (int)'a', n_A);<br />
<br />
int n_B = 50;<br />
char* p_buffB = new char[n_B];<br />
memset(p_buffB, (int)'b', n_B);<br />
<br />
int n_AB = n_A + n_B;<br />
char* p_buffAB = new char[n_AB];<br />
<br />
memcpy(p_buffAB, p_buffA, n_A);
memcpy(p_buffAB+n_A, p_buffB, n_B);
<br />
delete [] p_buffA;<br />
delete [] p_buffB;<br />
<br />
p_buffA = p_buffAB;<br />
n_A = n_AB;<br />
<br />
Is this snipet ok?
Are there better ways to solve this issue?
|
|
|
|
|
It is ok. But you have always check for pointer validity, for instance
char* p_buffA = new char[n_A];
if ( !p_buffA )
{
}
...
You have also the option to use realloc :
int n_A = 30;
char* p_buffA = (char*) malloc(n_A);
memset(p_buffA, (int)'a', n_A);
int n_B = 50;
char* p_buffB = (char*) malloc(n_B);
memset(p_buffB, (int)'b', n_B);
char* p_buffA = realloc[p_BuffA, n_A + n_B];
memcpy(p_buffA + n_A, p_buffB, n_B);
free(p_buffB);
(as stated above you've always to check return value of allocation function)
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.
[my articles]
|
|
|
|
|
Looks nice
Thnaks alot.
|
|
|
|
|
Trying to search the web in a loop, hitting the search engine with a new query with each iteration (with thousands of terms for this particular application). Don't know frankly if that's even allowed, as google kicks you off if you try to do it. But the following code below uses the COM IWebBrowser2 interface to an open InternetExplorer. Don't know if that is considered antiquated or there's a faster way to do it, because right now I'm just getting about a page per second. Is there a faster way than the following:
SHDocVw::IWebBrowser2Ptr brwsr = NULL;
.
.
.
brwsr = SHDocVw::IWebBrowser2Ptr(spDisp);
.
.
.
strcpy(srch_engn,"http://www.mysearch.com/search/GGmain.jhtml?searchfor");
sprintf(szURL,"%s=%s+%%22",srch_engn,q_misc);
char* szSrch = szURL+strlen(szURL);
while (1) {
strcpy(szSrch,getNextSrch(...));
BSTR bstr = ConvertStringToBSTR(szURL);
brwsr->Navigate(bstr);
VARIANT_BOOL busy;
READYSTATE rs;
while(1) {
Sleep(200);
brwsr->get_Busy(&busy);
if (!busy) break;
brwsr->get_ReadyState(&rs);
if (rs == READYSTATE_LOADED) break;
if (rs == READYSTATE_COMPLETE) break;
}
brwsr->Stop();
.
.
.
}
|
|
|
|
|
After the Stop statement above, here's how I process the returned page (as I guess that might be the bottleneck):
if (rsltDoc = IHTMLDocument2Ptr(brwsr->GetDocument())) {
HRESULT hr = rsltDoc->get_body(&body);
if (!FAILED(hr)) {
BSTR bstr_b;
hr = body->get_innerText(&bstr_b);
if (!FAILED(hr)) {
char* szBody = ConvertBSTRToString(bstr_b);
if (!strstr(szBody,szNotFound)) {
pf_fmt(szSrch);
fprintf(f,"%s\n\n",szSrch);
printf("%s\n\n",szSrch);
bMatch = TRUE;
}
delete [] szBody;
SysFreeString(bstr_b);
}
}
}
|
|
|
|
|
Hello
How can I disable/enable hibernation programatically in C++ in VS.NET ?
Or need to change registry values?
Thank you for any help ..will really help
modified on Saturday, January 12, 2008 3:08:48 PM
|
|
|
|
|
tibiz wrote: Or need to change registry values?
You can use RegSetValueEx() .
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Thanx, I know about registry setting.
I'm trying using the GLOBAL_POWER_POLICY and if it will not help, maybe the reg. settings. Can you post me the place where to find the reg. entry ?
|
|
|
|
|
tibiz wrote: Can you post me the place where to find the reg. entry ?
It will be in the following value:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power\Heuristics
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
<br />
bool SetHibState(BYTE state)<br />
{<br />
HKEY hKey;<br />
HKEY hk;<br />
<br />
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, SUBKEY, 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) {<br />
<br />
BYTE byteRegData[255];<br />
DWORD dwBufLen = 255;<br />
<br />
LONG lRet;<br />
if((lRet = RegQueryValueEx(hKey, VALNAME, NULL, NULL, byteRegData, &dwBufLen)) == ERROR_SUCCESS) {<br />
RegCloseKey(hKey);<br />
<br />
byteRegData[6]=(BYTE)state;<br />
<br />
<br />
if(!RegCreateKey(HKEY_LOCAL_MACHINE, SUBKEY, &hk)) {<br />
<br />
RegSetValueEx(hk, VALNAME, 0, REG_BINARY, (LPBYTE)byteRegData, (DWORD)dwBufLen);<br />
RegCloseKey(hk);<br />
} <br />
else return false;<br />
}<br />
else {<br />
RegCloseKey(hKey);<br />
return false;<br />
}<br />
}<br />
<br />
return true;<br />
}<br />
</dwbuflen;i++)>
.... but the problem is, the system won't give any reaction to the change, in power options is still the old setting
|
|
|
|
|
If you are merely trying to keep a system 'alive' consider investing these coding tips into your application, from the MDSN topic: Using Power Management, instead of disabling the hibernate policy altogether, just keep system awake while your program is running. If user does NOT run your program, then there might be no reason the system should not hibernate. If yu need to perform some task at a scheduled time, then let it hibernate, but consider setting a waitable timer. This will wake system up and your process will resume.
|
|
|
|
|
I've tested it doesn't flick without popping up the context menu.
With the menu, the backgroup is erase automatically.
Any way to make it flicking free?
Thanks a lot.
|
|
|
|
|
followait wrote: With the menu, the backgroup is erase automatically.
backgroup? What's behind/under the menu? One of your windows?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Yes, the view.
In OnRButtonDown I draw the memory graphics(GDI+) and call CView::OnRButtonDown .
I have the same code in CView::OnLButtonDown , it doesn't flick with no context menu.
The framework (generated by BCG app wizard) has such a function:
void CMyView::OnContextMenu(CWnd*, CPoint point)
{
theApp.ShowPopupMenu (IDR_CONTEXT_MENU, point, this);
}
modified on Saturday, January 12, 2008 9:28:51 PM
|
|
|
|
|
Did you ever solve this?
If not, can you reproduce it in a simple project?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Can anybody tell me the difference between stack & heap? or any relating tutorial.
|
|
|
|
|
|
|
A simple difference is:
1. To declare a variable of size 4G in the stack will usually crash.
struct A {
unsigned char[0xFFFFFFFE];
} obj;
2. To allocate a variable of size 4G in the heap is OK.
A* p = new A;
Maxwell Chen
|
|
|
|
|
Hey Max:
(1) There's no hope to compile that code.
(2) 4GB=0x100000000
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.
[my articles]
|
|
|
|
|
CPallini wrote: (2) 4GB=0x100000000
Approximately...
Maxwell Chen
|
|
|
|
|
How Can Create a Project multimedia(video & Sound) Conclave To 3 Computer
pc1=server
pc2=station 1
pc3=station 2
pc1 = administrator all computer(pc2,pc3) and veiw both pc and control
pc2 = can see computer pc3 to okey pc3
pc3 = pc2
|
|
|
|
|
If you break the problem down, you have the following needs:
1) Audio capture
2) Audio compression
3) Video capture
4) Video compression
5) Transmission of data
6) Audio decompression
7) Audio rendering
8) Video decompression
9) Video rendering
Which part is giving you trouble?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
with sorry ; All of them?
|
|
|
|
|