.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal
Post New Web Links

Unmanaged C++ calls managed c++ : it crashes on windows xp

Posted By:      Posted Date: April 14, 2011    Points: 0   Category :WPF


if I call a c++ function in a managed DLL from an unmanaged dll or exe, it crashes on Windows xp, but it runs fine on Windows 7.

On Windows XP I get an error message:

Die Anwendung konnte nicht richtig initialisiert werden (0xc0000135).

The Code is very simple. The Header file:

#pragma once

#ifdef _CLR_DLL_
#define _EXPORT_ __declspec( dllexport )
#define _EXPORT_ __declspec( dllimport )

extern "C"
int _EXPORT_ func(int i);

The c++ file:

#include "stdafx.h"

#include "ClrDll.h"

int func(int i)
	return i;

It is compiled with the /clr switch.

The caller is a simple C++ program, it calls this function.

I use Visual Studio 2010, and .NET framework 4.0

It works fine on windows 7.

It is very i

View Complete Post

More Related Resource Links

CLR Inside Out: Marshaling between Managed and Unmanaged Code


Marshaling is an important part of .NET interop. It allows you to call into unmanaged code from managed code. This column will help you get started.

Yi Zhang and Xiaoying Guo

MSDN Magazine January 2008

Smart Storage: Protect Your Data Via Managed Code And The Windows Vista Smart Card APIs


Smart cards are a compelling alternative to the reliance on passwords, which are the weakest link in authentication systems. Get the Windows smart card programming basics here.

Dan Griffin

MSDN Magazine November 2006

Managed Spy: Deliver The Power Of Spy++ To Windows Forms With Our New Tool


Spy++ displays Win32 information such as window classes, styles, and messages. Now you can get that same functionality for managed code using our ManagedSpy. Get it here.

Benjamin Wulfe

MSDN Magazine April 2006

.NET Internals: Examine Running Processes Using Both Managed and Unmanaged Code


There are plenty of times when you need to get information on running processes, not the least of which is during performance tuning. Using the techniques in this article and special .NET classes you'll see how to get a process' ID, name, priority, number of threads, kernel handle, and memory consumption, as well as its user-mode, kernel-mode, and total elapsed running time and put them to use in a custom app called AssemblyBrowser.

Christophe Nasarre

MSDN Magazine October 2004

Windows 2000: Asynchronous Method Calls Eliminate the Wait for COM Clients and Servers


Windows 2000 is the first version of COM to support asynchronous method calls, which permit clients to make nonblocking calls to COM objects and objects to process incoming calls without blocking the calling threads. COM clients benefit from asynchronous method calls because they can continue working while waiting for outbound calls to return. Objects benefit because they can queue incoming calls and service them from a thread pool. Our SieveClient and SieveServer sample apps demonstrate how to create and use asynchronous clients and servers in COM-based distributed applications.

Jeff Prosise

MSDN Magazine April 2000

Designer crashes sometimes because application path becomes C:\Windows\system32

Sometimes VS crashes as it seems to execute the WPF designer in its directories or C:\Windows\system32. Sometimes it works fine as we can preview saved settings in the Designer. I have set application path as follows : ConfigFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "mixer.ser");<br/> When VS crashes I accept to debug it, the exception is : {"Access to the path 'C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE\\mixer.ser' is denied."}    System.Exception {System.UnauthorizedAccessException} ... or c:\windows\system32 Any ideas on how to fix this ?   Thank you !

using managed code in unmanaged c++

I wanna use a managed c++ class and its functions (in which I wanna use interop services to wrap a COM based dll) in unmanaged codes is it possible? I mean, I feel like this maybe the case of JWNW(just will not work :D my alternate to IJW). This way seems to be scary and troubling  COM->C++/CLI->C++ and someone can remind me what was the function to call with System::Runtime::InteropServices (Visual c++ intellisense does not help me much there). Mmmm I had a few small projects calling unmanaged code in managed one ( using "pragma"s ) but I have no ideas for other way around. Can anyone direct me in right direction? I do not expect you to provide full working examples but seeing some conceptual FOO solutions would be most appreciated :D Thank you for your time :) Volkan

Sharing a file handler between managed and unmanaged code?

This is related to Interops, and sharing a file handler between a WPF UI and a native C++ DLL. I'm working on an application using MVVM as a guide. I want to use WPF for the UI, however it is a complex scientific application, which requires performance, and I am using C++ along with some GPU based code for all the modeling/processing. This is a Windows based app, no real network comm involved. I come across a challenge in terms of storing data. The data is multi-dimensional, and can be projected in many ways, while each projection can be processed/filtered in many ways too. I end up with a tree of data, with the raw data at the root and many branches. XML seems like an ideal way to store the information about this dataset, but as far as the raw data, it is not so convenient. I read about base64 encoding and the various binary-XML techniques, but see a major issue: the size of the converted data (150% of the raw) which in my case is huge (raw data is easily 200MBs+, and the multitude of projections can make it several 100's of MBs easily). There is the option of saving several files, but then it may become a nightmare for a user to 'transfer' files properly, so a one-file system seems best. I basically need to have the XML-like structure accessible to the UI, while the raw data needs to be accessed by the unmanaged code. So I was thinking I could concat

SQL-Server 2005 x64 / windows server 2003 x64 crashes during file copy

Hi We are running: Microsoft SQL Server 2005 Standard - 9.00.4294.00 (X64) Microsoft Windows Server 2003 R2 Enterprise x64 We have gigabit interface. Today we copied a file (using robocopy) from our databaseserver to another server (backup-server). The copy was started from the backup-server and source were specified using UNC. The copy were using about 20% of the bandwith (about 200Mbit). During the copy, sql-server reported several errors, for example: AppDomain 15 (mp.dbo[runtime].14) is marked for unload due to memory pressure. The client was unable to reuse a session with SPID 75, which had been reset for connection pooling. This error may have been caused by an earlier operation failing. Check the error logs for failed operations immediately before this error message. ***Stack Dump being sent to [PATH\SQLDump0005.txt Resource Monitor (0x1384) Worker 0x000000008000C1C0 appears to be non-yielding on Node 0. Memory freed: 0 KB. Approx CPU Used: kernel 15 ms, user 218 ms, Interval: 428541. So to me it appears that sql-server crashed during a file copy. We have 27 GB ram. With 24.5 GB dedicated to SQL-Server. The files we copied were quite large, some over 50GB. I found a similar issue about this: http://support.microsoft.com/kb/920739/ Do you think the issue above could be the cause of the sql-server crash? ///Patrik

DocumentViewer crashes in Windows XP SP3

Hi! I am developing a small program like point-of-sale based on WPF. In the program, I used UserControl to make shape of an Invoice. The FlowDocument would be converted into XPS document, and displayed into DocumentViewer. In Windows Vista, this works perfectly. I tried to run the program on Windows XP SP3, but the application crashed, it seems that XP SP3 can not handle DocumentViewer. So I installed XPS Essentials Pack 1.1 to check if it solve the problem, but it isn't. I have tried searching on Google, but found no solution. Is it the code that caused the problem? Or just missing components of target platform (WinXP SP3)? The code used to print the UserControl: public static FixedDocument GetFixedDocument(FrameworkElement toPrint, PrintDialog printDialog) { PrintCapabilities capabilities = printDialog.PrintQueue.GetPrintCapabilities(printDialog.PrintTicket); Size pageSize = new Size(printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight); Size visibleSize = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight); FixedDocument fixedDoc = new FixedDocument(); toPrint.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); toPrint.Arrange(new Rect(new Point(0, 0), toPrint.DesiredSize)); Size size = toPrint.DesiredSize; double yOffset = 0

Query crashes in MSAccess 2007 and 2010 on Windows 7 64bit, but works on 32 bit

Hello. I have a prepared a Database that contains 2 tables, and a Query. If you execte the query (Just a very simple join with a few where statments) Windows 7 crashes in 64 bit, but not on a 32 bit platform. Unfortunatly the Database has 300MB and is to big to be uploaded here. So if there is anyone interested at MS to get my Database, please feel free to contact me serge.dornseiffer@sdna.lu

WCF hosted in a Windows Service, how to make calls to the WCF service from within the service host


I have a Windows service that I converted to a WCF service that I want to host in a Windows Service.  I need to do some specific tasks in the OnStart() and OnStop() just like I did when it was just a Windows service.  My original Windows service OnStart() is where I create the main worker thread.  So how do I make a call into my WCF service from within the hosting service? For example in the hosting service's OnStart() I do a host.Open() then I need to call a method in my WCF service but how?



ServiceHost host =

Database Connection is a managed object or unmanaged object??


Hi All,

            I am confused over this point that Connection with databse in ado.net is a managed object or unmanged object, from the past couple of years i was assuming that it is unmanged but  a post from MSDN says it is managed (Correct me if i am wrong :)), i am attching the link of that post herewith

please find  -----> :Note Do not call Close or Dispose.................... in the below Link


Thanks in Advance,


Is the executable file generated by compiler a Managed code or Unmanaged code ?



when we compile our vb.net or c#.net code (say in a simple console application) then in bin\Debug folder a .exe file is created.Is that a managed code? when i directly execute this file,will this target CLR ? or will it directly run on OS ?

Why there is ConsoleApplication1.vshost.exe.manifest files created in that folder ?

What is .pdb file ?

That executable file is also created in obj\Debug folder .Why ?

Windows Service crashing on call to unmanaged code, even though console app version works


I have a C# program that at some point calls 2 functions from an unmanaged dll using p/invoke.  Everything works fine when I'm running in a console app.  When I compile the same program as a windows service and run it, it crashes.  The console app and service should be identical as far as my code is concerned... all either program does is create an object from another assembly of mine and run a Start() method on it.

I have used VS2010 to debug the managed and unmanaged code, and when I step through the Console app everything looks great.  When I attach the debugger to the service, i can step through the first function in the unmanaged code, control returns to the managed code, and then later when it comes to the point where it calls the second unmanaged function, the process terminates immediately before the debugger steps into the first line of unmanaged code.  There are no exceptions that I can see, and the only thing written to the event log is the generic "service terminated unexpectedly" message.  Running "sc query" on the command line lets me know the win32_exit_code is 1067.

Im running everything in .net 4, on winxp 32bit.  The serivce is running as Local System ideally, but the same behavior exists when I run it under my user account. 

Large string (.4gb) crashes simple C# vista/windows 7 when complied for any CPU



I have a program that converts csv files into XML files, this process runs on its own machine which has plenty (6gb) of ram. Part of the process is to read the entire contents of the CSV file into RAM. Typically the CSV files are no more then 20-40kb in size.

A new file type has been added to the system and it is about half a gig in size. Now I know there are better ways to handle this file, and I've already addressed that. I just wanted to give some background on HOW I found the problem.

If you create a new c# console app (vs2008 or vs2010) and paste in the code below on a 64bit Vista or Windows 7 pc, You may crash (total lock up) your PC. If you specify the processor to be x86 it runs fine...

Can someone explain this behaviour? I've tried three separate dev machines with the same results, but have no more to try.

Please take care, as the only way I have found to recover from this is to power off....

 static void Main(string[] args)

How to marshal safearray arguments when calling managed C# method from unmanaged C++?


I'm trying to utilize an old application framework from managed C# code but I don't understand how to marshal the safearray argument which is forwarded to the managed code. Here is a code snipped describing how the managed code is called:

  try {
    _ObjectHandlePtr pObjectHandle; 
    _ObjectPtr pObject; 
    _TypePtr pType;
    SAFEARRAY* psa;

    // Create an instance of a type from an assembly
    pObjectHandle = pDefaultDomain->CreateInstanceFrom(L"ClassLibrary1.dll",   // no path -- local directory
    variant_t vtobj = pObjectHandle->Unwrap();                   // Get an _Object (as variant) from the _ObjectHandle
    vtobj.pdispVal->QueryInterface(__uuidof(_Object),(void**)&pObject); // QI the variant for the Object iface
    pType = pObject->GetType();                             // Get the _Type iface
    psa = SafeArrayCreateVector(VT_VARIANT,0,1);               // Create 
ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend