|
int main(int argc, char* argv[])
{
ostringstream s;
int a = 100;
s << a;
string numText = s.str();
cout << numText << endl;
return 0;
}
Oh, you also need to include the iostream and sstream headers.
Kevin
|
|
|
|
|
Use a ostringstream .
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"
|
|
|
|
|
GetWindowText of an edit box (MFC) doesn't return the text if I write in a chinese win98.
I tried ::GetWindowTextW, still no text.
If I write in english, it works.
::GetWindowTextLength return zero for chinese text.
|
|
|
|
|
did you change your application to be in either UNICODE or MBCS ?
I suggest using UNICODE, by defining UNICODE and _UNICODE in the project setting (c++ tab)
Maximilien Lincourt
"Never underestimate the bandwidth of a station wagon filled with backup tapes." ("Computer Networks" by Andrew S Tannenbaum )
|
|
|
|
|
UNICODE is not applicable on win98, but I used unicows.dll to run unicode application in win98.
I changed my edit box to a rich edit box and the text went fine.
The problem is that I need an edit box, not a rich one.
|
|
|
|
|
that?can you send me some project to see how you did that,cause i cant run apps under win98 even with MSLU
|
|
|
|
|
1. First, change the project settings to unicode:
a. Replace _MBCS with _UNICODE in the "C/C++" tab on the project settings
b. In the "Link" tab, category "output" write wWinMainCRTStartup in the "entry" edit box.
2. Add UNICOW: UNICOW.lib must be before all libraries, so we don't use the "default libraries" and link them ourselves.
here I use the MFC DEBUG lib versions, you can delete the 'd' from the file name to use the RELEASE version.
a. On the "Link" tab, category "general", write the following in the "Object/library modules" edit box:
unicows.lib winspool.lib shell32.lib uuid.lib oleaut32.lib ctl3d32s.lib ole32.lib gdi32.lib comdlg32.lib advapi32.lib comctl32.lib version.lib mpr.lib rasapi
32.lib winmm.lib vfw32.lib kernel32.lib oleacc.lib oledlg.lib user32.lib Uafxcwd.lib LIBCMTD.lib Mfcs42Ud.lib
b. Choose "Ignore all default libraries". (so what we did on a) will affect)
good luck
|
|
|
|
|
thanks a lot.
|
|
|
|
|
I have a problem with video capturing. When I call create function everything goes fine, it means capDriver is loaded succesfully, setting callback function goes fine.... . What i see on the cap window is just the first image which has been grabed. The problem is that the call back function is not called. How to change the code if I want to use frame callback function?
Please help
typedef LRESULT (CALLBACK *FRAMECALLBACK)(HWND , LPVIDEOHDR);
LRESULT PASCAL _grabber_CallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr);
BOOL CCaptureVideo::Create(DWORD dwStyle, const RECT& rect, HWND pParentWnd)
{
hCaptureWnd=capCreateCaptureWindow("AviCap_Basic",
dwStyle, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top,
pParentWnd, AVICAP_WINDOW_ID);
if(!hCaptureWnd)
{
TRACE("CAviCap Window creation failed\n");
//iLastError=CAP_WINCREATION_FAILED;
return FALSE;
}
if( capDriverConnect(hCaptureWnd, DEFAULT_CAPTURE_DRIVER) )
{
AfxMessageBox("cap Driver connect ok");
}
if (capSetCallbackOnFrame(hCaptureWnd, _grabber_CallbackProc) )
{
AfxMessageBox("Callback ok");
}
if( capPreview(hCaptureWnd, FALSE))
{
AfxMessageBox("Preview ok");
}
return TRUE;
}
LRESULT PASCAL _grabber_CallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr)
{
AfxMessageBox("grab");
return 0;
}
|
|
|
|
|
Just installed VS.NET . All is fine and I think it is a great package. only problem is this.
When I try to make a database connection using the IDE, it always gives me an error along the lines
"[MS odbc driver]SQLSetConAttr failed"
when I try to access the table data
I am writing the error message from memory so it might not be accurate.
What I ask of you is either a solution or if you would be so kind an alternate method
I want to connect to a MS Access database. Has one table and no security like password and stuff.
Thank you.
|
|
|
|
|
Hi,
I've got a CEdit control, and a CString --> the CString will contain CEdit's text after de DDX_TEXT call, but after this I need the CEdit to be empty. I've tried by emptying the string, and then calling UpdateData(), but that just fills the string with the content of the CEdit, instead of the other way around.
How can I do this?
|
|
|
|
|
Try calling UpdateData(FALSE). The parameter is used to control the direction of data transfer.
TRUE -> data from window to CString
FALSE -> data from CString to window.
Chris Meech
"what makes CP different is the people and sense of community, things people will only discover if they join up and join in." Christian Graus Nov 14, 2002.
Oh and for those that ask programming questions in the lounge. Seek the truth here[^].
|
|
|
|
|
Thank you, it really helped
|
|
|
|
|
Since UpdateData() is an all-or-nothing operation, it shouldn't be used on individual updates.
m_edit.SetWindowText("");
|
|
|
|
|
Hi again student
MSDN
BOOL UpdateData( BOOL bSaveAndValidate = TRUE );
Return Value
Nonzero if the operation is successful; otherwise 0. If bSaveAndValidate is TRUE, then a return value of nonzero means that the data is successfully validated.
In other words: TRUE -> from screen, FALSE -> to screen
Other way:
set up text directly in the Edit similar:
m_myEdit.SetWindowText(youStringHere);
Hope this help.
Vitali
|
|
|
|
|
Dear All,
I am developing an application using MFC VC++ Version 6.0 for Windows 2000 which shows the list of drives present in system. I am showing this list of drives with checkbox corresponding to it in a listbox.
I am using CCheckListBox class for this. When ever a user checks or unchecks a drive, an event should be generated showing which drive is selected. (eg. a messagebox should appear: C:\ is selected or C:\ is unselected )
Can any body tell me which event to capture. I tried using LBN_SELCHANGE but it didnot worked properly.
Rohit
|
|
|
|
|
Use the CLBN_CHKCHANGE notification.
|
|
|
|
|
Hi again,
I captured LBN_SELCHANGE event and put following code in my application
///////////////////////////////////////////////////////
void CDataSpaceDlg::OnSelchangeLstdrv()
{
if(m_listdrive.GetCheck(0))
AfxMessageBox("hi I am checked");
if(m_listdrive.GetCheck(0)==0)
AfxMessageBox("hi I am not checked");
}
//////
where m_listdrive is a variable of type CCheckListBox.
m_listdrive.GetCheck(0) gets the check type of the 0 index (c:\ corresponding to it)
It works fine when we click on this checklistbox but i have another checklistbox in that dialog .When i click on that checklistbox, then it throws a Debug Assertion failure Winctrl1.cpp line: 105
//////////////////////
Can anybody suggest a way out
rohit
|
|
|
|
|
Have you looked at line 105 of Winctrl1.cpp? Notice the hard-coded assertion? It's telling you that your derived class has to implement DrawItem() , as well as the other two.
|
|
|
|
|
Hi
I have a deutsch word 'äuBerst'.
I can't type that 'B' correctly in here neither.
How can i assign that word to a CString.
CString strMyWord = "äuBerst";
The 'B' needs to be changed to the deutsch version.
Anyone have any idea how to insert this extended character to the text?
Greetings
Jens
|
|
|
|
|
Hi all, I have searched the web all over, and codeproject.com for an answer to this problem, and am empty handed. I have an app that loads a dll. I have a file management class (for loading files and managing their HANDLES etc.) In the app I use the notation io::Open(blah) to open the files using a static function which physically loads the file and keeps track of it in a list. However, when I try to load a file from the dll, the static io class is mapped to another area of memory and its list is NULL. How can I make it so that the io class is a system wide static class so that any instance within the current process can access the same static data? Any links or advice is very welcome
|
|
|
|
|
You could make Open(blah) a function of your application class.
Then your DLL would get a pointer to that application object and you could call Open(blah) via that pointer. The list would then sit in the application and the dll would not need to know about foreign memory.
Who is 'General Failure'? And why is he reading my harddisk?!?
|
|
|
|
|
Dangleberry wrote:
How can I make it so that the io class is a system wide static class so that any instance within the current process can access the same static data?
You can only do that by making its members non-static, and creating an instance of it in your application, then passing that instance to your DLL so that you application and DLL use the same instance of the class.
The fact that the members are static is only important at compile time. The DLL and application are compiled separately, and so they both get copies of the static data.
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"
|
|
|
|
|
Yeah this is the way I was going to do it, but if I have multiple dll's for say different aspects of the app I'm going to have to distribute the pointer everywhere. I have managed to find an article on data_seg which allows static variables to share a common place in memory, but I have not yet managed to get it to work. I'd like it so that if I call io::Open() in my app or in any dll the same instance of io (and its static data members) are used in the function (can I actually pass an instance of a static class through and assign it to the dll instance?). I know I could pass a pointer through and use io->Open but I prefer the static function approach. Thanks for all responses, much appreciated.
|
|
|
|
|
Dangleberry wrote:
if I have multiple dll's for say different aspects of the app I'm going to have to distribute the pointer everywhere.
Unfortunately, thats the price to pay for wanting a centralised way of working with things.
Dangleberry wrote:
I have managed to find an article on data_seg which allows static variables to share a common place in memory, but I have not yet managed to get it to work.
Creating a shared data segment? I think that only works for multiple instances of the same DLL.
Basically, I think you'll find that the only way you can do it is by passing a pointer to an instance of the class to all your DLLs.
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"
|
|
|
|