|
Is there anyway to make a case statement use AnsiStrings instead of intergers in Borlands c++
|
|
|
|
|
chris sprague1977 wrote:
Is there anyway to make a case statement use AnsiStrings instead of intergers in Borlands c++
The switch -ed expression enclosed in parentheses must be of an integral type or of a class type for which there is an unambiguous conversion to integral type. This includes int egers, but not necessarily AnsiStrings (whatever those are).
|
|
|
|
|
IS there a way I can do the analogous of sprintf for a char * to a STL string .
or a Format for a CString
Basically i want to write a integer value to a string !
string numText;
char data[20];
int a =100;
sprintf(data,"Num is %d",data);
Is there a way to do this for the string numText !!!!
|
|
|
|
|
you could try:
string numText;<br />
char data[20];<br />
int a = 100;<br />
sprintf(data,"Num is %d",a);<br />
numText = string(data);
-Nathan
---------------------------
Hmmm... what's a signature?
|
|
|
|
|
|
And on Windows CE .NET? The STL implementation there lacks the handy streams...
--
Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so. (Douglas Adams)
|
|
|
|
|
Johann Gerell wrote:
And on Windows CE .NET?
You would use .NET classes anyway. Otherwise, whats the point of using a .NET platform?
Who is 'General Failure'? And why is he reading my harddisk?!?
|
|
|
|
|
jhwurmbach wrote:
You would use .NET classes anyway
No. ".NET" is a product name here, the .NET framework need not have anything to do with it, but it can.
In our specific case, (a) the compact framework (.NET CF) is buggy and unusable and (b) we do drivers and low level stuff unapropriate for the CF.
jhwurmbach wrote:
Otherwise, whats the point of using a .NET platform?
Since it's the latest version of Windows CE, it offers greater security, better Internet connectivity, more stability and about a gazillion other stuff of interest to mobile developers.
--
Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so. (Douglas Adams)
|
|
|
|
|
Wow! .NET CF comes without .NET.
Microsoft marketing is working really hard on creating a strong brand.
I did not know that.
And on top of it, you do not even get a C++ compiler (that would include iostreams), just a surrogate. It seems you are stuck with sprintf.
Who is 'General Failure'? And why is he reading my harddisk?!?
|
|
|
|
|
jhwurmbach wrote:
And on top of it, you do not even get a C++ compiler (that would include iostreams), just a surrogate
jhwurmbach wrote:
It seems you are stuck with sprintf
Believe me, I'm so aware of that fact...
--
Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so. (Douglas Adams)
|
|
|
|
|
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
|
|
|
|