|
|
I want to use COM components in my application.
When to use
#import
and when to use CoInitialize, CoCreateInstance(..)
Are both reaching to same destination?
Or #import has to be used with ATL executable
and CoInitialize, CoCreateInstance has to be used with InProcess Dlls
Please confirm?
Row
|
|
|
|
|
Any thread that uses COM will have to call CoInitialize or CoInitializeEx to initialize COM on that thread and tell the COM runtime which apartment the thread belongs to. CoCreateInstance is the most common API for object creation. #import is used to get the compiler to generate C++ wrapper classes for COM interfaces from type libraries.
Steve
|
|
|
|
|
CoInitialize() Initializes the COM library on the current thread and identifies the concurrency model as single-thread apartment (STA). Applications must initialize the COM library before they can call COM library functions other than CoGetMalloc and memory allocation functions. (This is from the docs)
Now you can instantiate your component using CoCreateInstance()
You can also invoke the methods of the Component using LoadLibrary() etc
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
-- modified at 8:33 Tuesday 20th June, 2006
|
|
|
|
|
_AnShUmAn_ wrote: You can also invoke the methods of the Component using LoadLibrary() etc
This is not the case.
Steve
|
|
|
|
|
As everybody mentioned you have to call CoInitialize to load/map the COM subsystem into your process memory. This is vital.
Then to use/invoke calls on the Component classes:
Either you can use #import approach or the CoCreateInstance approach.
As a beginner I would recommend you to go for #import as this is comparatively easy. It wraps most of the COM complexities under Smart pointers.
Also this is not the place for posting COM related questions. Going forward please do it in the COM section
cheers...milton Kb
|
|
|
|
|
Hi Milton
Glad to meet u in CP
Where u know?
I am Anilkumar , Ex MOPL
|
|
|
|
|
Hey glad 2 hear from u. I was in seattle,WA. Juz back at Blr last friday. Come 2 milton.kbaby@cognizant.com / miltonkb@msn.com
rgds...milton kb.
|
|
|
|
|
|
|
|
|
I said whats error he said debug error you said what debug error he said got it
whitesky
|
|
|
|
|
If you see a system dialog box with Retry or Break button, then click on that button, and then go to Call Stack panel (from menu: Debug --> Windows --> Call Stack) and see the history of last functions that were called before the error. This information can be useful.
|
|
|
|
|
Hello everyone. Im currently writing my own wizard and want to add a wizard side bar image to the left of my dialogs. ( you know, like the ones you usually get on installers.).
Anway i just wondered if anyone knew of a website which has free downloads of where to get such images? Ive been trying to draw my own when i thought "hang on! there must be a place to download some standard stock images" so i thought id ask here.
Thankyou.
|
|
|
|
|
i am to m.f.c . how to get integer value from the user
prashant jain
|
|
|
|
|
Create an edit box and use GetWindowText().
Convert text to int using atoi()
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
thanx its working
prashant jain malviya national institute of technology
|
|
|
|
|
if you use a editbox you can use GetWindowText and then use atoi
<br />
m_Edit.ModifyStyle(0,ES_NUMBER);
CString str;<br />
m_Edit.GetWindowText(str);<br />
int index=atoi(str);<br />
whitesky
|
|
|
|
|
thanx
prashant jain malviya national institute of technology
|
|
|
|
|
Hi all,
I'm a newbie.
I tried this visual c++ code:
Console::WriteLine("Insert a double");
String __gc * letto = Console::ReadLine();
double doppio=letto->ToDouble(0);
Console::WriteLine( "you entered " );
Console::WriteLine(doppio);
but if i enter, for example, 20.5, the last command prints 205.
What should i do to print the correct value ?
Thanx in advance,
Desmo16.
|
|
|
|
|
|
You are doing it in the correct manner .No problem with that.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
Maybe you should enter 20,5 with comma?
|
|
|
|
|
You are supposed to post Managed C++ questions under (Managed)C++/cli section. Going forward Please do that.
There is nothing wrong in the code. Its works fine for even decimals. Make sure u entered the decimal also while entering the data.
cheers ...milton KB
|
|
|
|