|
Is it wise to create a critical section in the constructor, and delete it in the destructor? I once read that I should use FinalRelease, however I am unsure about it. Could someone offer some advice?
Jeremy.
Jeremy Pullicino
Professional C++ Developer
Done any hacking lately?
|
|
|
|
|
The big difference between the constructor/destructor and finalconstruct/finalrelease is that in final* you can return a value.
If something goes wrong in the constructor, you can not tell it to the client, but if you use finalconstruct instead you can return E_FAIL, and the client know there was an error.
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
No return value in FinalRelease(). Think about it, who're you going to return to?
--
Yeeeeehaaaaawwwwd!
|
|
|
|
|
Oops
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
The biggest advantage over FinalXXX over ctor/dtor is that you can compile with _ATL_MIN_CRT and not having to worry whether your global objects constructors/destructors are called or not. And you can signal error through HRESULT in the FinalConstruct method, causing CoCreateInstance() to report the failure. In C++ you'd have to throw something for that, and we all know that exceptions and COM doesn't really go hand in hand.
Of course, you could bypass the _ATL_MIN_CRT effect with placement new/explicit destructor calls in select places. However, FinalXXX is safer and produces more maintainable code, IMHO.
--
Yeeeeehaaaaawwwwd!
|
|
|
|
|
Hello everyone!
I've been searching for a tutorial about creating ActiveX controles on a website (no asp.. just html & javascript)
One of my friends said that i should use "COM", but i haven't found anything that worked.. I've seen one here with cookies in ASP, but when i'm not using ASP, it's kinda hard..
maybe someone has a small source for an ActiceX control that returns a string.. like
This is a test: (call function from ActiveX control)-> "Test string returned from an ActiveX control"
I hope someone can help me or direct me to a good tutorial..
Ice
|
|
|
|
|
you cant create an ActiveX controls on websites but you can embedd it on a web page. You must create your custom activex by VC++ or VB. Then embedd it with one of web page design programs such as front page or composer.
A. Riazi
|
|
|
|
|
I've got that far.. Now, how do i make the activex control? I'm using VC++ 6.0.. so which projekt should i use?
|
|
|
|
|
MFC ActiveX Control Wizard!
A. Riazi
|
|
|
|
|
I have a ActiveX COM component and i am using that component in webpage packed as cabinet file.
When the button in a webpage is clicked the page is processing using the activex.
But i am having the strange problem...the compoent works if i wait till the component is fully downloaded.
But if the use clicks the button on the page before the page is fully loaded i am getting error..
How do i fix this problem..
any help appreciated..
|
|
|
|
|
Make an empty page containing only this ActiveX. when downloading of ActiveX finished, redirect this empty page to your desired page (page that has button)!
A. Riazi
|
|
|
|
|
I was wondering I have heard lots of how it is good to have some COM/ALT expereince I was just wondering where exactly can you find info on this subject are there any very informative sites on this subject? If so where? or is it more of a thing you learn with lots of experience and books. If so how many years should one wait before learning alt/com.
- LiquidKnight
|
|
|
|
|
There are a lot of articles about COM/ATL here on codeproject...
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
Hello,
I'm running the same executable under WIN200 Pro, SP3
and WIN200 Server SP2. This app uses the same InProc
COM control. BUT, under WIN2000 Server the call takes
approximately 15 times longer.
Any ideas/suggestions aree highly appreciated.
Regards,
Valeriy Raygorodetskyy
|
|
|
|
|
What does it do? Is it under COM+? Did you use procexp.exe?
|
|
|
|
|
Thanks for your responce.
No it is not COM+, just pure InProc guy which makes some
calculations (no database calls). And I did use DependencyWalker to be sure that I'm comparing apples-to-apples, but thanks for reminding about procexp.exe - I'll try it as well.
Valeriy
|
|
|
|
|
Hi,
I created a VbActivex dll and called the dll in the asp page using CreateObject Function.Dll is working Fine,but once after running the Asp page, then if i try to "make the dll" again after making some changes to it,I am getting the error:"Permission denied C:\winnt\system32\project2.dll".Only if i restart the System and then make the dll then it is getting compiled.Every time i cannot keep on restarting the system as and when i make any small changes.I am new to this concept.Can anyone provide me a solution for this so that i can make the dll again and again without system restart.I require ur help plsssss.
Thanks in advance
shankar
|
|
|
|
|
Restarting MTS(COM+)/IIS is a simpler solution
|
|
|
|
|
My situation:
I've created an ATL free-threaded exe server that contains one worker thread in an STA that created one central com object (this object does NOT lock the server). The worker thread put an interface to the central object in the GIT that the served up objects (in the MTA) use to access the central object....hence 'one-at-a-time' access to central object.
My problem though, is that I'm developing a rather complicated client that I have to terminate through TaskManager quite often.
At this point I want my ATL exe server to shut down because the central object uses system resources.
Doesn't the COM run-time layer have a kind of ping that constantly verifies the proxy-stub connection between processes? After the client is abnormally terminated the proxy disappears, doesn't the COM run-time then release the stub, and thereby call release on my served object?
Maybe i'm expecting too much from COM, but if so, is there another way?
thanks in advance,
nebbish
Smart, Sexy, Sane. Pick two.
|
|
|
|
|
You are expecting too much of COM (or Windows for that meter). kill -9 considered a bad programming practice in Windows. In Windows we do not crash programs just to terminate them. Read articles in MSDN on "graceful program termination".
|
|
|
|
|
I have written a vb class module which simply writes a string to a file and compiled this as a dll.Now when I registered this dll using regsvr32.exe from the system32 folder under WINNT directory in the win2k server,I can access this dll from my ASP code simply by using Server.CreateObject("dll name").
1>Is this dll a com?
2>Whats the difference between a com and a dll?
3>So if it is possible to access this dll through ASP by registering the component in the server registry,then what is the utility of using MTS in IIS?
Since I am a beginner in web development,I would also like to know about the other functionalities and advantages of using MTS with IIS.Address of any relevant web site dealing in similar topics will also help me a lot....
Thanking u all in advance...
Anirban
|
|
|
|
|
Hi , u are bit confused as i was when i started studying COM .
COM & DLL
=========
DLL is simply an extension for library component,which are ofcourse COM components ,yes dlls are COM
DIFFRENCE
=========
u may say dll are subset of COM
(although this relation is no good u can't compare them )
COM is a technology ,Dll is just an extension to a library file ,which is made using COM standard
USE OF MTS
==========
MTS handles/is used for following
-Transaction control
-maintainance
-administration
-security
-Extensibility
-Scalability
-Resource pooling & making an application in Tiers , u would know many other uses , as u gain experience
Hope u get smater by reading the above
regards
P.S. PATWAL
|
|
|
|
|
I am developing a C# UI. My boss wants "a menu like that used in the Visual Studio toolbox for GUI design". This is a very fancy ActiveX menu running up and down the left side of the Visual Studio UI. I would like to import this ActiveX control into my application from an existing COM type library. Any help identifying and locating said library would be most appreciated.
Bruce Crosby (brucec@dtn.com)
|
|
|
|
|
Hi All,
I have one DCOM server to which clients can logon and logout. DCOM server has many threads and it sends event notifications to all it's clients through connection point interface method(outgoing interface).
When client is working, I removed client machine from networking/powered off client machine. Then when server tries to send notification to client immediately, notification function is taking long time(nearly 1 min) to return.
How to get response from function immediately ? or there is any other way to handle this ?
Kindly help me ..
Regards.
|
|
|
|
|
I've a in-proc COM DLL that spawns a new thread which initializes as MTA. The COM objects created by this DLL are marked as ThreadingModel = Both. The COM object is intended to be consumed by VB apps & uses GIT to notify the clients of interesting events using the connection points.
The problem is that the performance is noticeably slower. If i rebuild the COM object as STA & don't spawn a new thread, the performance gets better. Infact, with a second thread & ThreadingModel = Free seems to outperform the ThreadingModel = Both though i can't really explain why this is so.
One of the main reasons for the second thread is to free up the main thread to handle the UI tasks (responsiveness) while the second thread handles all the grunt work behind the scenes & notifies only when something interesting happens.
While investigating this, came across the CoCreateFreeThreadedMarshaler & wondering if this would help. Does anyone have any experience with this? How do you go about debugging something like this? any pointers would help.
Thanks
Chen Venkataraman
|
|
|
|