|
But this function is to convert str to long. how can i get a character?
Regards,
Ram
|
|
|
|
|
char cAsciivalue = nlong;// the long value u got
nave
|
|
|
|
|
Ram Murali wrote: But this function is to convert str to long.
Of course; and that return value is the ASCII code for the character.
E.g. if your user has input "50" the long return value of ::strtol() will be 0x50, which is 80 in decimal format, and this is the ASCII character code for 'P'.
"It's supposed to be hard, otherwise anybody could do it!" - selfquote
|
|
|
|
|
Thanks for your effort to solve my problem. Its working well. Thanks again.
Regards,
Ram
|
|
|
|
|
Ram Murali wrote: For example, I have Hex string of "50" and I would like to display the ASCII equivalent "P".
CString strHex = "0x50";
char *pEnd;
printf("%c\n", strtol(strHex, &pEnd, 16));
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Thanks a lot. Its working well.
Regards,
Ram
|
|
|
|
|
Hi,
How we can draw a slanding rectangle or ellipse using VC++?
I tried GDI+ but its quit time consuming can any body suggest an alternative method
Tony
|
|
|
|
|
|
Try code like this:
CPaintDC dc(this);
static const double pi = 4.0*atan(1.0);
static const double degToRad = pi/180.0;
static const double angle = 45.0*degToRad;
static const int cx = 200;
static const int cy = 200;
static const float cosAngle = static_cast<float>(cos(angle));
static const float sinAngle = static_cast<float>(sin(angle));
static const XFORM xf =
{
cosAngle, sinAngle,
-sinAngle, cosAngle,
-cx*cosAngle+cy*sinAngle+cx, -cx*sinAngle-cy*cosAngle+cy
};
int oldMode = ::SetGraphicsMode(dc.GetSafeHdc(), GM_ADVANCED);
::SetWorldTransform(dc.GetSafeHdc(), &xf);
dc.Ellipse(cx-100, cy-50, cx+100, cy+50);
::SetGraphicsMode(dc.GetSafeHdc(), oldMode);
Steve
|
|
|
|
|
Hi all.
I must write service for NT, can some one tell me where I can find good book to read about it.
thanks all.
|
|
|
|
|
You can see articles on the codeproject about it
|
|
|
|
|
|
Hi,
I work on an xml project using xerces integrated to the MS VC++ 6.0 environment (msdev). I need to integrate xerces with MS Visual Studion 2003 (devenv).
The following are the setup options I create with the VC++ 6.0
a. Project Setting -> C/ C++ tab -> Category : Preprocessor ->Additional Include Directory :
b. Project Setting -> Link -> Category : Input -> Object/ Lib Modules : Xerces-c_2D.lib and Addtional lib path :
Xerces works fine with this.
When I try the same with MS VS 2003, i get linker errors indicating that there is a clash between the MSXML and xerces' functions definitions. What Should I do to resolve this issue. Please help
|
|
|
|
|
Hi All,
i have a vc++client and i'm using com components having business logic.
Problem:
i'll not close the client application.
but the virtual memory accupied by the process is not freed.
when it reaches maximum of virtual memory client application crashes.
please give me the solution what to do avoid crashing.
Thanks in Advance.
Prashanth.
-- modified at 2:58 Friday 2nd February, 2007
|
|
|
|
|
voorugonda prashanth wrote: the virtual memory accupied by the process is not freed.
You are experiencing memory leaks.
Are you using new (or, worse, malloc ) without delete (or free )?
Are you properly using delete[] when deleting an array?
Are your COM-Components OK and properly releasing when no longer used?
Are you sure you are releasing them?
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
jhwurmbach wrote: Are you using new (or, worse, malloc)
Why would using malloc be wrose than using new ? What do you think new is calling internally?
|
|
|
|
|
WalderMort wrote: Why would using malloc be wrose than using new?
malloc is very fine - in C-code.
With C++ and objects, you better use new .
WalderMort wrote: What do you think new is calling internally?
How could I know? Why would I care?
Thats an implementation detail that can (and will!) change.
I have even seen an heap manager to be written from scratch.
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
hi,
i'm not using malloc or new in my application.
i'm using only vectors of class objects allocated on stack itself.
i dont see any problem with vectors of class objects allocating on stack.
steps:
1) client application talks to the component
2) which internally talks DBHandler component which connects to SQL Server and returns the result back.
3) the result i'm storing in vectors for processing.
4) return back to the client.
i'm not able get what exactly the problem is??
|
|
|
|
|
voorugonda prashanth wrote: dont see any problem with vectors of class objects allocating on stack.
Only when these objects are correctly copy-construcable.
All objects in STL vectors will be copied when needed, and the old instances deleted.
Some object may not properly delete their allocated resources when simply deleted and need to have a special deletion routine been called.
Poor design, that.
You say that you store results of an SQL-transaction. When this result does not hold a link to the SQL-connection and is simply data stored in members and not new ed, I am also not able to get where the problem is.
-- modified at 9:08 Friday 2nd February, 2007
typo
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
A huge difference is that for an object the constructor is not guaranteed to be called when using ::malloc() , but it's guaranteed to be called when using new .
The same goes for ::free() and delete .
Read Stroustrup's FAQ for more info: clickety[^].
"It's supposed to be hard, otherwise anybody could do it!" - selfquote
|
|
|
|
|
I know what the difference is between the two, but I would like to know why he thinks using malloc is worse than using new. Granted, using new has become the standard in c++ code, but there are instances where using malloc has proved to be better, take the resizing of dynamic arrays for example or needing to allocatate an instance without calling the c'tor ( not that I can think of a valid reason for doing this ).
|
|
|
|
|
WalderMort wrote: but there are instances where using malloc has proved to be better
Sorry, WalderMort, I don't know what you're referring to by this statement.
If you follow the link I provided in my previous post and scroll up a few lines, you will find this:
Stroustrup wrote: There is no performance difference between malloc() and new when you take initialization into account.
In my humble opinion, if you find yourself in a situation where you think you benefit from the use of ::malloc() in C++, you're probably not using the language in the way Stroustrup intended.
This is also how I interpret his statement a little bit further down:
Stroustrup wrote: If you feel the need for realloc() - and many do - then consider using a standard library vector.
WalderMort wrote: needing to allocatate an instance without calling the c'tor
I cannot possibly think that I will find myself in a situation where I actually want to use uninitalized data, the compiler would also complain about it. If you want to create a copy of an existing object, you don't use ::memcpy() but you would rather use the copy constructor or the assignment operator.
But that may be just me...:-> ...but I think not...
"It's supposed to be hard, otherwise anybody could do it!" - selfquote
|
|
|
|
|
voorugonda prashanth wrote:
when it reaches maximum of virtual memory client application crashes.
i believe we cannot be much use for you as you urself have to debug the application to find cause of memory leaks
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and you
|
|
|
|
|
I run the program by Microsoft Visual Studio 2005 on the Windows® XP
operating system.
I try to run the basic program of RTC.
There is no compile error, but there is a run-time error.
==> hr = pIDispatch->QueryInterface
(IID_IRTCSessionStateChangeEvent,reinterpret_cast<void**> (&pISessionState));
The error message is __vfptr = CXX0030: Error: expression cannot be
evaluated.
The code is followed.
Can somebody tell me where is the problem?
#include "stdafx.h"<br />
#define _WIN32_DCOM<br />
#include <windows.h><br />
#include <Winuser.h><br />
#include <malloc.h><br />
#include <objbase.h><br />
#include <Rtccore.h><br />
#include <oleauto.h><br />
#include <iostream><br />
#include <unknwn.h><br />
#pragma comment(lib, "ole32.lib")<br />
#pragma comment(lib, "Uuid.lib")<br />
using namespace std; <br />
int _tmain(int argc, _TCHAR* argv[])<br />
{ <br />
HRESULT hr = S_OK; <br />
CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);<br />
IRTCClient *pIRTCClient;<br />
hr = CoCreateInstance( CLSID_RTCClient, NULL, CLSCTX_INPROC_SERVER, IID_IRTCClient,<br />
reinterpret_cast<void **> (&pIRTCClient) );<br />
hr = pIRTCClient->Initialize();<br />
long lEventMask;<br />
lEventMask = RTCEF_ALL; <br />
hr = pIRTCClient->put_EventFilter(lEventMask);<br />
DWORD dwEventCookie;<br />
IUnknown *pUnknown = NULL;<br />
IConnectionPointContainer *pCPC = NULL;<br />
IConnectionPoint *pCP = NULL;<br />
hr = pIRTCClient->QueryInterface( IID_IUnknown, reinterpret_cast<void**> (&pUnknown) );<br />
hr = pIRTCClient->QueryInterface( IID_IConnectionPointContainer, reinterpret_cast<void**> (&pCPC) );<br />
hr = pCPC->FindConnectionPoint( IID_IRTCEventNotification, &pCP );<br />
hr = pCP->Advise( pUnknown, &dwEventCookie ); <br />
pCP->Release();<br />
pCPC->Release();<br />
pUnknown->Release(); <br />
hr = pIRTCClient->put_ListenForIncomingSessions( RTCLM_BOTH ); <br />
BSTR bstrLocalURI = NULL;<br />
BSTR bstrDestURI = NULL;<br />
RTC_SESSION_TYPE SessionType;<br />
IRTCSession *pIRTCSession = NULL;<br />
IRTCProfile *pIRTCProfile = NULL; <br />
SessionType = RTCST_PC_TO_PC ;
if(SessionType == RTCST_PHONE_TO_PHONE){bstrLocalURI = SysAllocString(_T("tel:+14255550123"));}<br />
bstrDestURI = SysAllocString(_T("sip:22500@163.22.20.154")); <br />
hr = pIRTCClient->CreateSession( SessionType, bstrLocalURI, pIRTCProfile,RTCCS_FORCE_PROFILE,&pIRTCSession );<br />
IRTCParticipant *pIRTCParticipant;<br />
hr = pIRTCSession->AddParticipant( bstrDestURI, NULL, &pIRTCParticipant );<br />
hr = pIRTCSession->Terminate(RTCTR_NORMAL);<br />
IRTCSessionStateChangeEvent *pISessionState = NULL;<br />
RTC_SESSION_STATE SessionState;<br />
IDispatch *pIDispatch = NULL; <br />
hr = pIDispatch->QueryInterface(IID_IRTCSessionStateChangeEvent,reinterpret_cast<void**> (&pISessionState));<br />
hr = pISessionState->get_State(&SessionState);<br />
switch(SessionState)<br />
{<br />
case RTCSS_DISCONNECTED:<br />
{<br />
pIRTCSession->Release();<br />
pIRTCSession = NULL;<br />
break;<br />
}<br />
}<br />
return 0;<br />
}<br />
<br />
|
|
|
|
|
what can i do , i have this error when i try to open the recordset : "dynamic cursors not supported by odbc driver"!
My recordset :
-snapshot , .... Open(CRecordset::skipDeletedRecords)
what can i do ? because i want to skip deleted records !
(mark to delete)(i understand)!because i have many records mark for delete and the cursor do not pass over them !
Bravoone
|
|
|
|
|