|
Strings in C end with a 0 (zero) caracter, so you can do a while until you get this ending character.
I do not understand what you say about displaying vectors. Do you mean cout << vecInt[0]?
If so, are you programming a console application?
|
|
|
|
|
here's a simple way to display the contents of a vector in a console application...
for(int i = 0; i < my_vector.size(); i++)
{
cout << my_vector.at(i) << endl;
}
*.*
cin >> knowledge;
|
|
|
|
|
For string (basic_string)
use
string::copy(..)
<br />
string str("ttt");<br />
char *pStr = new char[nLen + 1];<br />
str.copy(pStr, nLen, 0)
For vector, you could use the iterator.
<br />
std::vector<int>::iterator yourItr;<br />
<br />
for(yourItr = vecInt.begin(); yourItr < vecInt.end(); yourItr ++)<br />
cout << *yourItr;
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
Hi,
I am writing a small launcher and monitoring program - the program launches and monitors a specific external application (a game). What I want to do is have it so that if the user alt-tabs out of the game, my monitoring program deletes some sensitive temporary files; I then want it to rewrite them to disk when the user alt-tabs back into the game. The first part is easy, I just do this:
//g_hWnd = game window... check to see if it is no longer the focus...
if(g_hWnd != GetForegroundWindow())
{
HWND checkwnd = GetForegroundWindow();
//check that it hasn't lost focus to one of its children
if(GetParent(checkwnd)!=g_hWnd)
{
//program has definitely lost focus, so delete files:
DeleteTemporaryFiles();
}
}
However, I can't work out how to do the second part. When the user alt-tabs back into the game program, I need to write the temporary files back to disk *before* the game window takes focus again (otherwise the game program may look for files that aren't there and spew errors - it is fine so long as there is no input). This means that my program would have to somehow hold up the game program taking focus until the files have been rewritten to disk...
Does anybody have any idea of how I could do this? I have tried taking control over the various windows using the standard API settings such as SetForegroundWindow, SetWindowPos, SetActiveWindow etc, but they don't seem to work with handles to external applications (and I think I read that they work even less with Windows 2000 etc).
If anybody has any ideas of how I could do this, I would be very grateful.
Many thanks,
KB
P.S. I'm aware that this could be seen as undesirable behaviour for an application, but please don't tell me I shouldn't be doing this at all. The program that creates the launcher will have an option for "Remove temporary files when not focussed" or some such, so I won't force this sort of behaviour - it is just for extra security for those users of the launcher who don't want their temp files accessed.
|
|
|
|
|
Anybody? This is really driving me crazy. There must be a way to tell the window to wait until I've re-extracted the files before before opening again, but I just can't work it out...
Cheers,
KB
|
|
|
|
|
Hi group,
I am sure that in my last message ,i couldn't explain the problem
clearly.So i am writing the message again.
Actuall my application is acting as a OLE Automation client to MS Access.It uses Access application object's TransferText method to transfer a text file into a table in a mdb database.Now ,in the next statement in my client application ,i want to know whether the table-loading is completed(as it is a separate process and TransferText returns immidiately after firing the command).If yes,i will run some Table-dependent code.But i don't know a way through which the MS Access Application can notify me that the Loading operation is completed.
As this is a crucial issue, i need expert's help....
Thanks and regards.
|
|
|
|
|
Hi all,
I am working on a dialog base application using VC++ 6.
I have a requirement to create MSN like EMOTICON window, with a click on image and insertion in the CRichEditCtrl window.
After trying and searching still unable to find.
Can anybody help me for a workaround, really appreciated.
Thanks.
The Phantom.
|
|
|
|
|
how to place and then move and resize the image e-g jpg on the workspace?
|
|
|
|
|
load the jpg(there are some articles about that on CP), then use BitBlt or StretchBlt to move or resize the picture!
Don't try it, just do it!
|
|
|
|
|
Widely used style
for
ListBox - flat and single-line contoured - in Dialog.
How to make it?
How regulate 3d depth of border in common case,
and how to show single-line contour ?
thanks you.
|
|
|
|
|
How to disable temporarily update in CEdit? I want to change some text with ReplaceSel() method but it scrolls to inserted position. But u do not need it. My CEdit flicks because of that. In other words i want to change the text, which is not displayed at current view, without scrolling.
|
|
|
|
|
SLiDeR wrote:
How to disable temporarily update in CEdit?
Is CWnd::EnableWindow() what you are looking for?
SLiDeR wrote:
My CEdit flicks because of that.
CWnd::SetRedraw() might help.
|
|
|
|
|
Yes, CWnd::SetRedraw() is great!
|
|
|
|
|
hello
what is WM_APP?what has this to do with parsing the mails received in user's inbox??
ranjani
|
|
|
|
|
You set one on sense a problem the third day...
what is it?
|
|
|
|
|
ranjjj wrote:
what is WM_APP?
WM_APP begins a range of messages for private use by an application to do whatever it likes.
ranjjj wrote:
what has this to do with parsing the mails received in user's inbox??
Nothing, unless you use a private message to help with the work.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
is the code i got from msdn for parsing mails
i have doubts in it like..
in the readnextmsg function what is ..c:\\pst\\myprofile.pro???
what shud i use in my program instead of that..and in the findnext function..whats OL??what are the parameters to be passed to the functions...so that i can autmate the process of receiving mails in my inbox!
thank u
here's the code
#include
#include
#include
#include
#include
#include
//assumption::character interface being used.
//the Simple MAPI functions for reading messages can't
//log on implicitly and require an explicit session handle.
/*the client application defines needed variables and
logs on to get a session handle/*
ULONG ReadNextUnreadMsg()
{
ULONG err;
LHANDLE lhSession; // Need a session for MAPIFindNext.
CHAR rgchMsgID[513]; // Message IDs should be >= 512 CHARs + a null.
MapiMessage *lpMessage; // Used to get a message back from MAPIReadmail
int i, // Ubiquitous loop counter.
totalLength; // Number of characters printed on a line.
err = MAPILogon(0L, // ulUIParam; 0 always valid.
"c:\\pst\\myprofil.pro",// Shouldn't hardcode this.
NULL, // No password needed.
0L, // Use shared session.
0L, // Reserved; must be 0.
&lhSession); // Session handle.
if (err != SUCCESS_SUCCESS) // Make sure MAPILogon succeeded.
{
printf("Error: could not log on\r\n");
return(err);
}
//next..the client searches for the first unread message in the //default folder in the store - probably the user's Inbox.
//Since there might not be any unread messages in the folder, //the client first tests the return value from the MAPIFindNext
//function against MAPI_E_NO_MESSAGES before checking against //SUCCESS_SUCCESS. If the call is successful, the client will have
///a valid message identifier to use to retrieve the first// unread message
/* */
// find the first unread message
err = MAPIFindNext(lhSession, // explicit session required
0L, // always valid ulUIParam
NULL, // NULL specifies interpersonal messages
NULL, // seed message ID; NULL=get first message
MAPI_LONG_MSGID | // needed for 512 byte rgchMsgID.
MAPI_UNREAD_ONLY, // only get unread messages.
0L, // reserved; must be 0
rgchMsgID);// buffer to get back a message ID.
if (err == MAPI_E_NO_MESSAGES) // make sure a message was found
{
printf("No unread messages.\r\n");
return(err);
}
if (err != SUCCESS_SUCCESS) // make sure MAPIFindNext didn't fail
{
printf("Error while searching for messages\r\n");
return(err);
}
//The client can now be sure it is safe to retrieve the message. //However, it is a good idea to check the return value from
//the MAPIReadMail function. If the call fails, the memory pointed //to by the client's lpMessage pointer will not be accessible by
//the client. The client should not try to display a message at //that location. Note that this example sets the
//MAPI_SUPPRESS_ATTACH flag so the returned message will not
//have any attachments in it and Simple MAPI will not create any //temporary files for them.
// retrieve the message
err = MAPIReadMail(lhSession, // Explicit session required.
0L, // Always valid ulUIParam.
rgchMsgID, // The message found by MAPIFindNext.
MAPI_SUPPRESS_ATTACH, // TO DO: handle attachments.
0L, // Reserved; must be 0.
&lpMessage); // Location of the returned message.
if(err != SUCCESS_SUCCESS) // Make sure MAPIReadMail succeeded.
{
printf("Error retrieving message %s\r\n",rgchMsgID);
return(err);
}
//Now, the client can display the message. As expected, //it begins by displaying the addressing information attached
//to the message before displaying the subject line and message text.// When displaying the addressing information, it is best if you
//can display friendly names. However, since friendly names are
//not always available, you must verify that each recipient //structure's lpszName member points to a valid string,
// and that the string is not a null string.
// Display the sender's name or address; use the friendly name// if it is present.
if((lpMessage->lpOriginator->lpszName != NULL) &&
lpMessage->lpOriginator->lpszName[0] != '\0')
printf("From: %s\r\n",lpMessage->lpOriginator->lpszName);
else
printf("From: %s\r\n",lpMessage->lpOriginator->lpszAddress);
//Displaying the recipients' addresses is complicated by the //need to avoid breaking a recipient's name or address across
//two lines. This code can be further improved by differentiating //between recipients based on their ulRecipClass members so that
//they can be properly displayed as To, CC, or BCC recipients.// As this code shows, handling recipient data can be the most
// complex part of reading a message.// Display the recipients' names or addresses. To Do: enhance
// this code to separate the recipients into lists of MAPI_TO,// MAPI_CC, and MAPI_BCC recipients for separate display.
if(lpMessage->nRecipCount == 0)
printf("Warning: no recipients present for this message\r\n");
else
for(i = 0; i < lpMessage->nRecipCount; i++) // For each recipient...
{
// This code uses lstrlen to calculate the length of strings and
// to validate that the strings have some content, since the
// length is needed anyway. This avoids the more verbose checks
// as were done for lpMessage->lpOriginator->lpszName earlier.
// lpszT references a name or address; simplifies later code.
// length is the length of the name or address.
LPSTR lpszT = lpMessage->lpRecips[i]->lpszName;
int length = lstrlen(lpszT);
if(i == 0) // First recipient; need to do some initialization.
{
printf("Recipients:");
totalLength = 11; // since strlen("Recipients:") = 11.
}
// Decide whether to use the friendly name or the address.
if(length == 0)
length = lstrlen(lpszT=lpMessage->lpRecips[i]->lpszAddress);
// Verify that the line has room for this name or address. If
// not, print a CR LF pair to go to the next line.
if(totalLength + length + 1 > LINE_WIDTH)
{
printf("\r\n");
totalLength = 0;
}
printf(" %s",lpszT); // Finally, print the name or address.
totalLength += length + 1;// Maintain the line length.
// If there are more addresses, separate them with semicolons.
if(i < (lpMessage->nRecipCount - 1))
{
printf(";");
totalLength++;
}
}
//Now, the client displays the subject line and message text if //they are present. Note that the message text can be printed
//with a simple call to the C library function printf. Since //the message was read with the MAPI_SUPPRESS_ATTACH flag set,
//there will be no attachments in it.// Display the subject and message body. Not printing anything
//for the subject is fine, but something should always be //printed for the message body since it is the last thing
//that this function displays.
if(lpMessage->lpszSubject != NULL && // Standard validity check
lpMessage->lpszSubject[0] != '\0')
printf("Subject: %s\r\n",lpMessage->lpszSubject);
if(lpMessage->lpszNoteText != NULL && // Standard validity check
lpMessage->lpszNoteText[0] != '\0')
printf("Message Text:\r\n%s",lpMessage->lpszNoteText;
else
printf("No message text.\r\n");
//Finally, the client releases the memory that the MAPIReadMail //function allocated for the message, closes the session,
//and returns a successful return value.
MAPIFreeBuffer(lpMessage);
MAPILogoff(lhSession, // The session.
0L, // 0 always valid for ulUIParam.
0L, // No logoff flags.
0L); // Reserved; must be 0.
return SUCCESS_SUCCESS; // Inform the caller of our success.
} // End of ReadNextUnreadMsg
ranjani
|
|
|
|
|
ranjjj wrote:
whats OL??
It's 0L, not OL (zero, not uppercase o). It's simply 0, as a long .
I haven't used MAPI before, so I can't help you with the MAPI stuff.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Hi all.
Please tell me how to read a word document from C, using simple fopen statement.
Please.
|
|
|
|
|
Hi,
It simple open doc file, call fopen(...) and next read him.
Absolutely other task that you will do with it after reading
Vitali
|
|
|
|
|
No the problem is , if i do a fopen, it reads from start. I want only the text content, no the header.
how to do this.
|
|
|
|
|
As I know doc is not open format.
To read it using low-level functions
you should know this closed format.
Vitali
|
|
|
|
|
It would not be easy. A Word document is an OLE compound file. You'd be much better off using StgOpenStorage() and then using the IStorage interface. I'm not an expert on this, but you should be able to find examples around about using IStorage .
Hope this helps,
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Hello guy,
So, this is true, but question is about fopen.
I alsow want know how?
|
|
|
|
|
Sorry, I don't know about this. You'll have to try and find the format of an OLE Compound file. I doubt anyone here would know it - I think almost everyone here would do it using StgOpenStorage() .
Are you programming for Windows, or Linux or another O/S?
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|