|
there is no problem with this code!!! its working fine in my VC++ 2003 compiler without having any problem. its showing "3" as the result. here is an altenative way.
CString input("0x2");
CString strMsg;
strMsg.Format("Length:%d",input.GetLength());
AfxMessageBox(strMsg);
SaRath.
"Do Next Thing..."
Understanding State Pattern in C++
|
|
|
|
|
yeah... i'm using VS 2005...
Kitty5
|
|
|
|
|
|
Hey, The code is giving 3 in my system.
There is nothing wrong in your code.
Still if u r not getting 3.Try this way.
CString output;<br />
output.Format("%d",length);<br />
AfxMessageBox(output);
Appu..
"If you judge people, you have no time to love them."
|
|
|
|
|
|
|
toxcct wrote: AfxMessageBox(CString(a));
What is wrong using AfxMessageBox((CString)a); ??
Appu..
"If you judge people, you have no time to love them."
|
|
|
|
|
|
Then what does AfxMessageBox(CString(a)); mean ??
Appu..
"If you judge people, you have no time to love them."
|
|
|
|
|
|
CString(a) is the preferable way, but (CString)a does not give compilation error and works too because of available cast from char * to CString , thanks to the CString( const char *) constructor.
Actually AfxMessageBox requires const char * , so it should be AfxMessageBox(a) . Otherwise a redundant creation of temporary CString object occurs.
|
|
|
|
|
Gr8...Very helpful..Thanks for the explanation my dear Friends.
Appu..
"If you judge people, you have no time to love them."
|
|
|
|
|
Ok i think I have a ghost in my computer.
it's working fine now... and i didn't change anything!
grrr.
Kitty5
|
|
|
|
|
kitty5 wrote: AfxMessageBox((CString)a); //DEBUG
There is no need to cast a to a CString .
"The largest fire starts but with the smallest spark." - David Crow
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
I'm using function system ("regsvr32 filename.ocx") and it's work OK.
But I'm doing this every time I run my Application, because I'm not sure if the OCX Control is registered or not. When App start the black cmd window is showing up, because of the system function. I don't want this window to appear always.
Is there a way to check the registry if the control is already registered or is there another way to register the Control without using system function.
This Application should be work on window 98 and above.
Thank you,
|
|
|
|
|
ZaebanB wrote: Is there a way to check the registry if the control is already registered
Use standard Registry APIs like RegQueryValue
Appu..
"If you judge people, you have no time to love them."
|
|
|
|
|
That seems quite an ugly solution. Why don't you provide an installer with your app ? And let the installer do the job of installing and registering the control ? These kind of things are never done in the app itself...
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
You can use ShellExecute instead of calling system. regserver has a silent mode registration. pls see the help by calling regsvr32 /?
Try to create the control first, if it fails, depends on on the error code, register the control.
Hope you clear
SaRath.
"Do Next Thing..."
Understanding State Pattern in C++
|
|
|
|
|
ZaebanB wrote: When App start the black cmd window is showing up, because of the system function. I don't want this window to appear always.
So don't use it. That's an antiquated function from pre-Windows days. Use CreateProcess() instead. See here.
"The largest fire starts but with the smallest spark." - David Crow
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
HCRET lpfnDllRegisterServer = NULL;
DLLName = "YouDLLName.dll";
hDLL = LoadLibrary(DLLName);
if (hDLL != NULL)
{
lpfnDllRegisterServer = (HCRET)GetProcAddress(hDLL, "DllRegisterServer");
if(NULL == lpfnDllRegisterServer)
{
//ERR
}
else
{
if(FAILED((*lpfnDllRegisterServer)()))
{
ERR ("Tripio registration failed!");
}
else
{
//"Registering DLL Success"
}
}
FreeLibrary ( hDLL );
}
else
{
ERR("LoadLibrary failed");
}
|
|
|
|
|
|
Take a minute to read. I could not shorten my problem... be patient...
I have a CBaseEvent class
There are other two classes have derived from CBaseEvent named CSysEvent and CGuiEvent
I have created a queue of CBaseEvent pointers.
This queue is being processed by an event handler class. A thread is working for this.
Whenever a new event adds on the queue, this thread will process the event by calling ProcessEventFunction . which prototyped as ProcessEventFunction(CBaseEvent* pEvent)
Here comes the problem. How can I identify between System Event and GUI event?
These are the possibilities I have
1. Use dynamic_cast identify the pointer using dynamic cast. Then do the further processing depends on Sys event or GUI event.
2. Do the above check inside the thread itself and call the ProcessEvent function overloaded with GUI event and SysEvent depends on the result
3. Use two queues. One for sys event and another for GUI event. Run two threads for the same and call the overloaded ProcessEvent function depends on the queue. Here definitely I’ll face some problems with the order of the events received. I need to process the sys and GUI events in first come first serve manner. So this approach will have sync issues.
The above are the solutions I have!!! Could you pls suggest one from this or a new one?
Again sorry for borring you with a long question
SaRath.
"Do Next Thing..."
Understanding State Pattern in C++
|
|
|
|
|
I've relied on poor man's RTTI by adding a protected member of the enum type CBaseEvent::Type to the base class. The enum is set in each base class constructor. CBaseEvent has a getType() method that returns the type of subclass.
/ravi
My new year's resolution: 2048 x 1536
Home | Music | Articles | Freeware | Trips
ravib(at)ravib(dot)com
|
|
|
|
|
Create a ProcessEventFunction on the base class CBaseEvent that is overloaded for proper processing and invoke that function.
|
|
|
|
|
I've used virtual functions for this, so that you don't have to identify the type.
Chris Meech
I am Canadian. [heard in a local bar]
When no one was looking, every single American woman between the ages of 18 and 32 went out and got a tatoo just above their rumpus. [link[^]]
|
|
|
|