|
also check the address of i and ii you will see they are the same.
Watched code never compiles.
|
|
|
|
|
Well it seems my online help is old. Need to update and/or switch to web help.
|
|
|
|
|
|
Peter Camilleri wrote: If so, the author of this page should be sacked for writing a deliberately confusing entry.
I agree. Not a lucky sample.
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]
|
|
|
|
|
If I attempt to download http://www.codeproject.com/App_Themes/Std/Img/logo225x90.gif
It returns bad request with the code used below.
Download->HostFileLocation has /App_Themes/Std/Img/logo225x90.gif in UNICODE format stored in it.
#define DEFAULT_BUFLEN 512
char HTTPrequest[DEFAULT_BUFLEN];
char *HostFileLocation = new char[wcslen(Download->HostFileLocation)+1];
wcstombs(HostFileLocation, Download->HostFileLocation, wcslen(Download->HostFileLocation)+1);
char *Host = "www.codeproject.com";
char *UserAgent = "MyPrivateDownloader b86";
sprintf(HTTPrequest,"GET %s HTTP/1.1\r\nHost: %s\r\nUser Agent: %s\r\nAccept: */*\r\nAccept-Encoding:\r\n\r\n", HostFileLocation, Host, UserAgent);
send(IPv4,HTTPrequest,strlen(HTTPrequest),0);
However if I use. HTTP/1.0
sprintf(HTTPrequest,"GET %s", HostFileLocation);
send(IPv4,HTTPrequest,strlen(HTTPrequest),0);
Everything goes smoothly.
I appreciate any help I can get on this matter.
|
|
|
|
|
The header is called User-Agent[^], this should fix it.
/Moak
PS: The way you use string buffers is a buffer overrun[^] waiting to happen.
|
|
|
|
|
I know what a buffer overrun is!
But if I have to avoid I have to use all those _s functions and calculate the length of every string.
Anyways I do not know how a user can trigger it!
|
|
|
|
|
It was just ment as a tip, I know you didn't explicitly ask for it
String and buffer handling is a repeating issue when working with protocols. Perhaps you can avoid low-level memory handling and use one of the many C++ string classes out there to format/parse text strings. That's what I do in my HTTP client, as a result, you can as a developer focus more on protocol and network functionality.
Have a good weekend!
|
|
|
|
|
How do you manager transmission and receiving buffers, the buffers varies from host to host depending on their web server daemon IIS/Apache.
I believe my problem lies in the header response output that I'm using to trace protocol behavior.
My app is Unicode I retrieve the HTTP request, it's all char so I convert multi-byte to wchar_t.
Then use MessageBox, it might be causing the memory problem.
|
|
|
|
|
Fareed Rizkalla wrote: How do you manager transmission and receiving buffers
Use a receive buffer that can grow if necessary, have a look at std::vector[^].
The transmission buffer probably doesn't change after allocation, receive data chunks and write them to disk.
Hope it helps.
|
|
|
|
|
Hi,
I know how to use CCmdUI in a command_ui_handlers mwthod to change the checked state of CMFCRibbonCheckBox object, but is there any way to do this by the object variable itself, like a SetCheck(true) method.
|
|
|
|
|
I have a simple MFC application that I would like to run multiple times at the same time. My question is how will I be able to find out the application instance (Is there a registry entry somewhere?) as I need for each of these instances to have its own settings. can this be done?
|
|
|
|
|
The easiest would be to store a number is the registry or a file.
Every instance of the application must increment this counter when it starts and decrement the counter when it exits.
|
|
|
|
|
You read my mind. I was just hoping there were more smarts available may be in the registry or something... oh well..
Thanks
|
|
|
|
|
Why do you need , to obtain an unique instance of application ?
|
|
|
|
|
Why not ?
Watched code never compiles.
|
|
|
|
|
I guess I wanted each instance to be unique.
|
|
|
|
|
Software2007 wrote: My question is how will I be able to find out the application instance
You could store the process ID; but that should change each time you start the applications.
Software2007 wrote: as I need for each of these instances to have its own settings. can this be done?
How will you start the application ? or the question is how do you match the settings for each instance of the application ?
Could you start each instance with a command line parameter with the setting information ?
Where are the settings stored ? files ? registry ?
M.
Watched code never compiles.
|
|
|
|
|
I guess the above suggestion would wrk for me by assigning registry names based on each instance number like Registry instance #1, Registry Instance #2...etc), I can read and write based on the instance #.
|
|
|
|
|
|
Hi All,
I am running an application which is a form view application.I am allocating memory of size 160kb in a for loop .I am allocating memory at the begining of for loop for each iteration and freeing it at the end of each iteration.I have 133 such iteration.But i am facing a problem.In the 9th iteration when i am trying to allocate a memory using malloc the application crashes.
I am getting the following messsage in the output window.
HEAP[TEST.exe]: HEAP: Free Heap block 3f277a8 modified at 3f27850 after it was freed
I am getting the following messages in the call stack window:
ntdll.dll!7c90120e()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!7c96e139()
ntdll.dll!7c94b535()
ntdll.dll!7c927573()
ntdll.dll!7c91005d()
ntdll.dll!7c927784()
ntdll.dll!7c927573()
> TEST.exe!_heap_alloc_base(unsigned int size=160036) Line 105 + 0x28 bytes C
TEST.exe!_heap_alloc_dbg_impl(unsigned int nSize=160000, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0, int * errno_tmp=0x015cf02c) Line 427 + 0x9 bytes C++
TEST.exe!_nh_malloc_dbg_impl(unsigned int nSize=160000, int nhFlag=0, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0, int * errno_tmp=0x015cf02c) Line 239 + 0x19 bytes C++
TEST.exe!_nh_malloc_dbg(unsigned int nSize=160000, int nhFlag=0, int nBlockUse=1, const char * szFileName=0x00000000, int nLine=0) Line 296 + 0x1d bytes C++
TEST.exe!malloc(unsigned int nSize=160000) Line 56 + 0x15 bytes C++
TEST.exe!TEST_IDP_FUNC1(unsigned char * pucSrcImg=0x07200068, unsigned char * pucDstImg=0x059d4d68, unsigned short uiSrcRows=400, unsigned short uiSrcCols=400, TBoundBox * pstBoundBox=0x05bd8318) Line 529 + 0x11 bytes C
TEST.exe!TEST_IDP_FUNC2(unsigned char * pucSrcImg=0x05aecc58, unsigned char * pucDstImg=0x03f00690, unsigned short uiSrcRows=400, unsigned short uiSrcCols=400, unsigned short uiDstRows=400, unsigned short uiDstCols=400, TBoundBox * pstBoundBox=0x05bd8318) Line 4117 + 0x1b bytes C
TEST.exe!CTEST::FUNC3(CTESTImage * objSrcImage=0x03e726c8, CTESTImage * objDstnImage=0x03e7a050, unsigned char * pucDstImg=0x03f00690) Line 107 + 0x25 bytes C++
TEST.exe!CTESTView::FUNC4() Line 8346 C++
TEST.exe!_AfxDispatchCmdMsg(CCmdTarget * pTarget=0x0039c900, unsigned int nID=32902, int nCode=0, void (void)* pfn=0x00401276, void * pExtra=0x00000000, unsigned int nSig=57, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000) Line 82 C++
TEST.exe!CCmdTarget::OnCmdMsg(unsigned int nID=32902, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000) Line 381 + 0x27 bytes C++
TEST.exe!CView::OnCmdMsg(unsigned int nID=32902, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000) Line 162 + 0x18 bytes C++
TEST.exe!CFrameWnd::OnCmdMsg(unsigned int nID=32902, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000) Line 942 + 0x23 bytes C++
TEST.exe!CFrameWndEx::OnCmdMsg(unsigned int nID=32902, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000) Line 995 + 0x18 bytes C++
TEST.exe!CWnd::OnCommand(unsigned int wParam=32902, long lParam=0) Line 2364 C++
TEST.exe!CFrameWnd::OnCommand(unsigned int wParam=32902, long lParam=0) Line 366 C++
TEST.exe!CFrameWndEx::OnCommand(unsigned int wParam=32902, long lParam=0) Line 359 + 0x10 bytes C++
TEST.exe!CWnd::OnWndMsg(unsigned int message=273, unsigned int wParam=32902, long lParam=0, long * pResult=0x015cfcd8) Line 1769 + 0x1e bytes C++
TEST.exe!CWnd::WindowProc(unsigned int message=273, unsigned int wParam=32902, long lParam=0) Line 1755 + 0x20 bytes C++
TEST.exe!AfxCallWndProc(CWnd * pWnd=0x0039a4a0, HWND__ * hWnd=0x00190eae, unsigned int nMsg=273, unsigned int wParam=32902, long lParam=0) Line 240 + 0x1c bytes C++
TEST.exe!AfxWndProc(HWND__ * hWnd=0x00190eae, unsigned int nMsg=273, unsigned int wParam=32902, long lParam=0) Line 403 C++
user32.dll!7e418734()
user32.dll!7e418816()
user32.dll!7e4189cd()
user32.dll!7e418a10()
TEST.exe!AfxInternalPumpMessage() Line 183 C++
TEST.exe!CWinThread::PumpMessage() Line 900 C++
TEST.exe!CWinThread::Run() Line 629 + 0xd bytes C++
TEST.exe!CWinApp::Run() Line 865 C++
TEST.exe!AfxWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, wchar_t * lpCmdLine=0x00020882, int nCmdShow=1) Line 47 + 0xd bytes C++
TEST.exe!wWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, wchar_t * lpCmdLine=0x00020882, int nCmdShow=1) Line 34 C++
TEST.exe!__tmainCRTStartup() Line 263 + 0x2c bytes C
TEST.exe!wWinMainCRTStartup() Line 182 C
kernel32.dll!7c817077()
Please help.
Thanking you,
Ashwath.
|
|
|
|
|
Code Watson, we need code.
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]
|
|
|
|
|
Code, plz. Urgent. Doesn't that work?
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
|
|
|
|
|
Chris Meech wrote: I am Canadian. [heard in a local bar]
I don't get it (I feel stupid...).
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]
|
|
|
|
|
|