473,976 Members | 1,463 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

mixed assembly, unmanaged process, FreeLibrary (.NET 2.0)

DPR
Hi,

I've recognized that a mixed assembly with unmanaged exports and an
unmanaged "DllMain" can't be unloaded from a (unmanaged) process, even
if it's no longer needed and the (unmanaged) process calls the
"FreeLibrar y" function.
I couldn't find any documentation for this special restriction ! So
isn't there any possibility to unload a mixed assembly manually from a
unmanaged process once it has been loaded without killing that process ?

I've tried to unload the whole CLR from the process in order to get the
assembly unloaded - but it seems that the CLR can't (???) be unloaded
from a running process once it has been loaded.

The MSDN documentation is very inconsistent as to this CLR behavior:

"CoUninitialize Cor is obsolete. The common language runtime cannot be
unloaded from a process. To completely remove the runtime from a running
process, you must shut down that process."

ICLRRuntimeHost ::Stop
"Do not call this method. The host cannot unload the runtime from a
process."

On the other hand:

ICorRuntimeHost ::Stop
"Unloads the common language runtime from the current process."
[...]
"It is typically unnecessary to call this method, as the common language
runtime is automatically unloaded when the process exits.
Note:
After a call to Stop, the common language runtime cannot be
re-initialized into the same process."
Thanks for any help in advance !

--

DPR
Feb 6 '06 #1
0 1391

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
4540
by: Ted Miller | last post by:
Hi folks, I'm looking at moving a large base of C++ code to .Net under tight time constraints. The code runs in mission-critical environments, and I am extremely concerned about the loader lock problem and the potential for deadlocks. After pouring over the available information, and trying a few experiments, I am still left with a few questions and issues I hope someone out there can shed some light on.
9
2603
by: Edward Diener | last post by:
I received no answers about this the first time I posted, so I will try again. My inability to decipher an MSDN topic may find others who have the same inability and someone who can decipher and explain it. I have some questions about the instructions for creating a mixed mode DLL in the MSDN topic "Converting Managed Extensions for C++ Projects from Pure Intermediate Language to Mixed Mode" in the "Managed Extensions for C++ Reference"....
0
2075
by: Frank Lopez | last post by:
My program structure is: 1. 2. 3. => manually does the crt-init and crt-terminate calls 4. -- this is accessed by the unmanaged C++ classes in (3) using LoadLibrary and FreeLibrary
8
2011
by: Nadav | last post by:
Hi, I am writing a performence critical application, this require me to stick to unmanaged C++ as performance is much better using unmanaged C++ ( about 33% better ), Still, I am trying to avoid the usage of old style COM, my alternative is to expose my unmanaged interface through the CLI, to achieve that I have created a mixed mode DLL in which my unmanaged class are defined. When referencing the DLL just described in another mixed mode EXE...
1
1333
by: rudi | last post by:
Hi everybody, I have a problem with a mixed mode application. It consists of an unmanaged C++ dll, a "mixed mode" dll and various VB.NET dlls using the mixed mode dll to talk to the unmanaged dll. When running on a development machine, everything works just fine. But when deploying on a production machine, there is an error: the mixed mode dll or one of its dependencies can not be found.
10
2419
by: ajtaylor | last post by:
Hello, I have a load of native C++ code that I want to use in a CLR class library. My "logic" being that I create a C++/CLI managed class that acts as an interface to the unmanged code. I created a new CLR class library and added my native/unmanaged C++ code then added some code to the unmanaged class. Now, and this is where I am not sure, I turned off the CLR support in
0
1304
by: MC-Advantica | last post by:
I have built a managed wrapper class and assembly that expose much functionality available in unmanaged legacy DLLs. I can write VB apps that interface with the managed assembly, and the managed assembly makes calls to the legacy dlls. All seems to work fine when the assembly is a private assembly. When I go through the process of strong naming the assembly and placing it into the GAC, none of my VB apps will initialize. I have gone to...
0
1232
by: MC-Advantica | last post by:
I have built a managed wrapper class and assembly that expose much functionality available in unmanaged legacy DLLs. I can write VB apps that interface with the managed assembly, and the managed assembly makes calls to the legacy dlls. All seems to work fine when the assembly is a private assembly. When I go through the process of strong naming the assembly and placing it into the GAC, none of my VB apps will initialize. I have gone to...
1
2707
by: =?Utf-8?B?SmltIFdhbHNo?= | last post by:
I have an VC++ MFC Win32 application that isn't working correctly when I build it with VS2005. The problem seems to be in some ADO ActiveX controls that came with VS6 and are now out of support. So, I have decided to solve the problem by using a mixed assembly: Most of the program will be my MFC - based code (unmanaged), but I will implement one dialog box as managed code. In my original MFC app, this dialog box contains the problem ActiveX...
0
10167
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
11815
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10905
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
10081
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
8456
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6413
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
6550
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
4729
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3758
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.