|
You're still not passing the right number. Your source buffer is a string, which is 5 bytes long (4 letters plus the terminating 0). You're saying write 10 bytes, which makes WriteFile() read off the end of your string. This may crash, or if not it's writing random bytes to the file. Here's the preferred way:
BOOL bSuccess = WriteFile ( hFile, buffer, strlen(buffer), &byte, NULL ); Notice I'm checking the return value too
--Mike--
Personal stuff:: Ericahist | Homepage
Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt
CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ
----
Actual sign at the laundromat I go to: "No tinting or dying."
|
|
|
|
|
thank you so much! I will remember that next time
-Ryan M.
|
|
|
|
|
Ryan McDermott wrote:
I am still learning C++. I know vb much better
Never too late to do the right thing
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg
|
|
|
|
|
Ryan
1) I'd be a bit worried about the result if you used '10' as the size of the string as shown in your code ... you could crash the program, since you appear to be writing more characters than you have in the buffer ..
2) I'd use "test\0" to init the buffer and
3) strlen(buffer) as the 3rd argument for the WriteFile
'G'
|
|
|
|
|
I didnt realise Michael Dunn had already corrected your use of the '10' .. didnt see his post first time round
sorry all
'G'
|
|
|
|
|
I recently read an article on this website the FAQ for VC++. One thing i was interested in was supposed ability to Staticly Linking MFC info the EXE through PROJECT\SETTINGS and the MFC Tab but it seems i only have the option "Use MFC In A Shared DLL".
Im using VC++ 6.0 Standard Edition is this perhaps why i dont have the other option of static linking?
|
|
|
|
|
|
No there didnt seem to be an option for it i created a Dialog based application.
When installed i chose custom and selected what to install could this have affected some of my options greatly at all?
|
|
|
|
|
|
N4X3M wrote:
Im using VC++ 6.0 Standard Edition is this perhaps why i dont have the other option of static linking?
That's right, some of the cheaper versions of VC don't have that feature. I know I mention that in the FAQ, but it might be in another question.
--Mike--
Personal stuff:: Ericahist | Homepage
Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt
CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ
----
"Linux is good. It can do no wrong. It is open source so must be right. It has penguins. I want to eat your brain."
-- Paul Watson, Linux Zombie
|
|
|
|
|
how to set a coloum's width in one raw?
m_Chart.GetDataGrid().SetData(row,i,height,0);
method above can only set a coloum's height.
Tell me,thanks a lot
|
|
|
|
|
Hi,
I'm writing a utility which runs from an icon in the system tray. Right-clicking produces a popup menu which includes several items created dynamically. When the user clicks one of the dynamically added items I want to be able to check/uncheck it. The only problem is I can't get a pointer to the popup menu.
This is how I'm trying it at the moment but it produces an assertion failure. What am I doing wrong?
CMenu* mmenu = ::AfxGetMainWnd()->GetMenu();
UINT state = mmenu->GetMenuState(nID, MF_BYCOMMAND);
ASSERT(state != 0xFFFFFFFF);
Thanks for any advice,
Simon
|
|
|
|
|
A context menu is generally created via TrackPopupMenuEx(). How are you creating the context menu?
Kuphryn
|
|
|
|
|
Many thanks for your response, from your question, I found the problem. I was trying to process the commands as if the menu was still active rather that in its setup procedure. Re-examining TrackPopupMenuEx() helped me to realise that. So thanks again,
Simon
|
|
|
|
|
Hi all hope u can help me . .
I have a simple program that copies files over a wireless network from one comp to a laptop. The program is made to start up as soon as windows xp is loaded up. The hard drive the program is trying to access is a mapped network drive. However because im on a wireless network windows does not make a connection (from what I can see) till about 30 seconds after windows has fully booted up and by this time the attempt to connect my map network drives has gone so windows now thinks the comp with the mapped network drive is now off line. This means that when my program tries to access that hard drive it fails. Of course all I have to do is double click on that hard drive and then windows will connect to it and my program will work. However I was wondering if there is a way I can program it to connect the mapped network drive so I don’t’ have to do it every time I start up windows.
Hope iv made a little bit of sense and thanks for any help any one can give me
Scott
|
|
|
|
|
Just create a timer that mounts the drives, say, 30 seconds after startup.
Kuphryn
|
|
|
|
|
that won't work because the windows never tries to connect to it again (it seems) so the only way to connect to it again is for me to manualy click on the drive
|
|
|
|
|
I have a list box that I add items to at run time. Once the items are all in (or even before that) I want to alphabetize the list. Any ideas on how to do this?
If you have a problem with my spelling, just remember that's not my fault. I (as well as everyone else who learned to spell after 1976) blame it on Robert A. Kolpek for U.S. Patent 4,136,395.
|
|
|
|
|
One solution is a custom sort. Basically what you do is link each item's data to the sort key if it is a DWORD (char, int, etc.) or a pointer to the key. Pass in the address of the predicate to SortItems().
Kuphryn
|
|
|
|
|
I keep getting an error 500 returned (I do analyze the return value in the actual code - this is simplified). It does not throw an exception - I am reaching the server and if I download the returned page - I get the server-generated error HTML.
Here is my code:
void SomeClass::SomeFunction()
{
CInternetSession session("TheAgent");
CHttpConnection* server = NULL;
CHttpFile* page;
CString headers;
CString& refheaders=headers;
DWORD dwRet;
DWORD& refdwRet = dwRet;
try
{
server = session.GetHttpConnection("somewhere.com", (INTERNET_PORT)80);
page = server->OpenRequest(CHttpConnection::HTTP_VERB_GET, "http://somewhere.com/index.htm");
headers = "Accept: text/*\r\nUser-Agent: TheAgent\r\n";
page->AddRequestHeaders(refheaders);
page->SendRequest();
page->QueryInfoStatusCode(refdwRet);
if (dwRet == HTTP_STATUS_OK)
MessageBox("SUCCESS");
else
MessageBox("ERROR");
delete page;
delete server;
}
catch (CInternetException* pEx)
{
MessageBox("CATCH");
}
session.Close();
}
My server is running fine. I can take the same URL in the OpenRequest() call and paste it into the browser and the page loads just fine.
|
|
|
|
|
Terry O`Nolley wrote:
page = server->OpenRequest(CHttpConnection::HTTP_VERB_GET, "http://somewhere.com/index.htm");
OpenRequest should take the resourse name not the whole path
page = server->OpenRequest(CHttpConnection::HTTP_VERB_GET, "index.htm")
|
|
|
|
|
THANK YOU!!!!!!!!!!!!! (5)
|
|
|
|
|
I would like to transfer files betwen a client and server that I have created using Socket programming.Please can some one send me the code.
|
|
|
|
|
shals169 wrote:
Please can some one send me the code
oh, you want the entiere code ? nop, sorry, we do not do homework here. but i can help you...
if you want to send an entiere file through sockets, you must use connected sockets.
then, before sending you fil, you can send a description for it. for example, its size, its name...
this way, the receiver will create a consequent named file and a buffer for the socket received datas.
then, you just have to read and write, until the end of file is reached.
you say you created a client and a server, so a consider you know how sockets works and how to use the sock API. But when you say so, it is troubling me because it is like you would like to use THIS client and THIS server. if they are not programmed for that, you won't be able to use them, otherwise you question is useless...
regards,
TOXCCT >>> GEII power
|
|
|
|
|
Check out CodeProject code section. There are examples of numerous non-blocking I/O models.
Kuphryn
|
|
|
|