|
No.
There is however a function, _rotl, and an assembly instruction (Intel added it after the age old joke).
|
|
|
|
|
Hello!
When I use GetActivedocumnet(), happen "Debug Assertion fail"
CObject* p;<br />
ASSERT((p = pMap->LookupPermanent(m_hWnd)) != NULL ||<br />
(p = pMap->LookupTemporary(m_hWnd)) != NULL);<br />
ASSERT((CWnd*)p == this);
but in release mode, no problem.
please tell me about referance or reason.
I waste two day on a reason.
tool : visual c++ 6.0
|
|
|
|
|
You'll never get assertions in a release build because they're removed by the preprocessor before the compiler compiles the code.
However, you should pay attention to assertions, because they're telling you that something's wrong.
In this particular case, it's telling you that MFC can't find the current window handle value in either its permanent or temporary maps. This is a Bad Thing. The permanent map holds window pointers for windows that you've either created in code from an MFC class, Attach ed, or subclassed using SubclassWindow . The temporary map holds temporary CWnd objects created by MFC from CWnd::FromHandle , GetDlgItem and many other functions that return a CWnd* (where those functions don't find the handle in the permanent map).
Basically, it means that the window underlying the CFrameWnd object (at a guess) has probably been destroyed or not initialised properly - a NULL m_hWnd is considered a valid CWnd .
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
Hey, does anyone know the technique to hold / store / process a log file with a limited size.
Basically i need to know how to have an effient log writing procedure?
|
|
|
|
|
For the limited size:
I found the best solution to simply use two files. If the log file exceeds it's limit, make a backup with a fixed name (overwriting previous backup, if any), and truncate it.
This is a very simple implementation, you always have "enough" past information available, and the log size never exceeds two times the set limit.
Efficiency: Don't use stream operators. (they are painfully slow. I once rewrote an entire logging package for that reason. Further, the syntax is really ugly for logging). I found printf-style fast enough.
I use simple CreateFile/WriteFile, and I *do* Flush at the end of the line. This slows down things - but using the log to debug application crashes, this is invaluable.
If this is not necessary, you could log to a memory buffer, and write out larger chunks.
Flirt harder, I'm a Coder
mlog || Agile Programming | doxygen
|
|
|
|
|
Hi there,
You may want to check the "Platform SDK Documentation" on the MSDN, look for "Event Logging".
Windows provide a mechanism to log events; you may have seen the Event Viewer on the Administrative tools.
Anyway, these are the functions available for this porpoise
Function Description
BackupEventLog Saves the specified event log to a backup file.
ClearEventLog Clears the specified event log, and optionally saves the current copy of the logfile to a backup file.
CloseEventLog Closes a read handle to the specified event log.
DeregisterEventSource Closes a write handle to the specified event log.
GetEventLogInformation Retrieves information about the specified event log.
GetNumberOfEventLogRecords Retrieves the number of records in the specified event log.
GetOldestEventLogRecord Retrieves the absolute record number of the oldest record in the specified event log.
NotifyChangeEventLog Enables an application to receive notification when an event is written to the specified event logfile.
OpenBackupEventLog Opens a handle to a backup event log.
OpenEventLog Opens a handle to an event log.
ReadEventLog Reads a whole number of entries from the specified event log.
RegisterEventSource Retrieves a registered handle to an event log.
ReportEvent Writes an entry at the end of the specified event log.
Fabian
|
|
|
|
|
There are several logging articles on CP including mine.
"We have done so much in the last 2 years, and it doesn't happen by standing around with your finger in your ear, hoping everyone thinks that that's nice." - Donald Rumsfeld
|
|
|
|
|
okay, thanks for the replies all
|
|
|
|
|
seems i have a problem compiling this code
//killprocess.c
#include <windows.h>
#include <tlhelp32.h>
int main(int argc,char *argv[])
{
char szName[100]="something.exe";
TerminateProcess(szName);
return 0;
}
What am I doing wrong?
-Ryan M.
|
|
|
|
|
The process must pass in TerminateProcess() a handle, not a filename. If you want to close a certain applicant, then search for the handle to its main window via FindWindow().
Kuphryn
|
|
|
|
|
TerminateProcess takes a handle to a process and an exit code as parameters so your code as written cannot compile.
You can get a handle to a process using OpenProcess given the Process ID which you can see in Task Manager, or enumerate using the ToolHelp functions CreateToolhelp32Snapshot, Process32First and Process32Next .
Alternatively you could look for a 'kill' program, I think there's one in the Resource kit.
Paul
|
|
|
|
|
http://www.physiology.wisc.edu/ravi/software/killproc/
|
|
|
|
|
I have a dialog based application and I have added a CRichEditCtrl to the dialog using the resource editor (incl. a CRichEditCtrl member variable).
Now I am trying to add text to this control if the user clicks on a button.
I have the following code in the message handler of the button:
m_RTFEdit.SetSel(-1,-1);
m_RTFEdit.ReplaceSel(pszData);
But this seems not to work. In the past I used StreamIn to copy text to a rich edit ctrl but now I want to use ReplaceSel.
Is it possible that the CRichEditCtrl loses the focus and so
ReplaceSel can not work?
Thanks in advance for your help.
|
|
|
|
|
Have you tried
m_RTFEdit.SetSel(0,-1);<br />
m_RTFEdit.ReplaceSel(pszData);
Best regards,
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
Yes and I have also tried
GetSel(start, end);
SetSel(end, -1);
But GetSel returns 0,0 so I think the problem is that the RTF ctrl loses the focus(?)
|
|
|
|
|
I want to make a generic file opening program, A simple dialog with one button. The user clicks on it and it launches the file open dialog.When the user selects a file that file is opened and displayed, whether it is a txt or doc or pdf or .... The function WinExec runs executables, but what about opening and displaying any document? I am using VC++ 6.0.Any solutions?
|
|
|
|
|
look up ShellExecute.
If you provide it with a document's file name, Windows will automatically start the corresponding application, as if you'd double-clickj the file in Windows Explorer.
Flirt harder, I'm a Coder
mlog || Agile Programming | doxygen
|
|
|
|
|
WinExec is a holdover from Windows 3.1 and could be removed in the future. Don't use it.
Instead, consider ShellExecuteEx (which can also launch executables). It will use whatever's configured in the Registry, the same as Explorer does.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
Hi,
I have an app that loads custom cursors when the user clicks on a toolbar. The cursor is loaded aok but when the user moves the mouse the cursor appearrs to flick. The cursor is preloaded in the view constructor using:
CNote1 = AfxGetApp()->LoadCursor(IDC_NOTE1);
and then updated in the COmmand_UI handler using:
pCmdUI->SetCheck(m_bNote1);
if(m_bNote1 == TRUE) ::SetCursor(CNote1);
anyone knows how to avoid the flickering?
Thanx in advance
|
|
|
|
|
|
hi all, i am using the following code:
CMemDC memDC(&dc);
HBITMAP hBmp = ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1));
::SelectObject(memDC.m_hDC,hBmp);
memDC.BitBlt(10,10,16,16,&dc,0,0,SRCCOPY);
where CMemDC, is the class where CreateCompatibleDC occurs....
i can see the image perfecly on my dialog, but when i drag the dialog out of the boundaries of the screen and then drag it back in, i see the image has fudged (appears blurry)....
what do i need to do to fix this?
thanks in advanced
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
The scenario your'e describing (shows ok but when i drag out and then into the screen it looks like !@#!@$!) happens when you paint your bitmap just once, and then go on forgetting about it.
Your application receives WM_PAINT/OnPaint messages in order to redraw portions of the screen. If you don't respodn to these messages or respond without drawing your bitmap, your bitmap will end up not being on the screen once the window redraws itself.
so, either add a custom control and have it's OnPaint BitBlt your bitmap, or override your main dialog's OnPaint to draw the bitmap (less nice but still works).
cheers
|
|
|
|
|
hi ohad, thanks for the reply
but that wasn't my problem! i've found out what i was doing wrong....
I did override OnPaint(), and place the bitblt there, but still i got a fudgy image....
the problem was there were suppose to be 3 dc handlers, and i only used 2...why 3? well, 1 for the screen (CPaintDC), 1 for the Memory dc (CMemDC) and one for my image (a totally new DC), as soon as i've put a new DC, problem was solved!
thanks anyway
Cheers right back at ya
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
I was writing a keyboard hooking dll, used ::SetWindowsHookEx to obtain a HHOOK , which was 0x0233078B in my case, but when I was done with the hook, for some odd reason ::UnhookWindowsHookEx returned FALSE , and ::GetLastError returned error code ERROR_INVALID_HOOK_HANDLE .
I debugged the code and value of my HHOOK never changed, so how could the handle, 0x0233078B, obtained from a successful ::SetWindowsHookEx call, suddenly become an invalid handle? Any helps are appreciated.
|
|
|
|
|
Hi,
in connection with my Outlook-Automation I´m using an event handler to
catch Outlook events im my application.
Sometimes (when my app sends a request who leads to an exception) I get an
error like this:
RPC Server is not available !
Because my app sends from every 2 minutes messages to Outlook it leads to
an total crash (Outlook and my app)
I would like to catch those Errors which gives me the possibility to react on this events an restart for example the RPCSever.
Can someone please tell me who to implement this ?
Thanks, Christian
|
|
|
|