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


Post New Web Links

Marshaling : avoid native memory freeing

Posted By:      Posted Date: October 21, 2010    Points: 0   Category :.NET Framework
 

Hi,

I have a little problem with marshaling.

I have a structure :

 

[StructLayout(LayoutKind.Sequential)]

    public class virConnectCredential

    {

        [MarshalAs(UnmanagedType.I4)]

        public virConnectCredentialType type;

        public IntPtr prompt;

        public IntPtr challenge;

        public IntPtr defresult;

        public IntPtr result;

        public uint resultlen;

    }

 

the "result" member is a string. I have made the choice to pass strings between native and managed via IntPtr.

 

This structure is passed to a function via an IntPtr (In and Out). The goal is to fill the "result" member of the structure Like this :

private static int AuthCallback(IntPtr creds, UInt32 ncred, IntPtr cbdata)

{

virConnectCredential vcc = (virConnectCredential)Marshal.PtrToStructure(creds, typeof(virConnectCredential));

// Put toto in the result member


View Complete Post


More Related Resource Links

How to detect and avoid memory and resources leaks in .NET application

  
Despite what a lot of people believe, it's easy to introduce memory and resources leaks in .NET applications. The Garbage Collector, or GC for close friends, is not a magician who would completely relieve you from taking care of your memory and resources consumption.

I'll explain in this article why memory leaks exist in .NET and how to avoid them. Don't worry, I won't focus here on the inner workings of the garbage collector and other advanced characteristics of memory and resources management in .NET.

How to avoid the memory exhausion for handling large Image files in C# ?

  

I have been developing a Form application for handling a large number Image files. The number of Image files could be more than 1,000 and each Image size is about 2MB. The code is as follows:

PictureBox[] pb = new PictureBox[iPictureBoxNumMax];
Label[] lb = new Label[iPictureBoxNumMax];

for (int i = 0; i < iPictureBoxNum; i++)
{
    lb[i] = new Label();
    pb[i] = new PictureBox();
 .
 .
    this.Controls.Add(pb[i]);
    this.Controls.Add(lb[i]);
 .
 .
    pb[i].ImageLocation = @sImageListAll[i];
    pb[i].Load();
}

.
.
.

for (int i = 0; i < iPictureBoxNum; i++)
{
lb[i].Dispose();
pb[i].Dispose();
}

(1) If the number of Image files is less than 300, the PictureBox generation code (the 1st portion) works. If the number is larger than that, an error message of "Memory exhausion" is displayed.

(2) However, the second protion of the code (pb[i].Dispose()) doesn't seem to clear, since the re-run of the first portion gives an error message of "Memory exhausion".

What should I do ?

Thanks


[Microsoft][SQL Server Native Client 10.0]Shared Memory Provider: Timeout error [258]

  

Hello All,

I am using MS SQL SERVER 2008. Im making an application which queries trillion of records. Im using PHP as scripting language. For those functions , which query database and 200 (approximately) rows of DB are returned, everything works fine. But if I query database and a large recordset should be returned, the following error is thrown:

Array ( [0] => Array ( [0] => 08S01 [SQLSTATE] => 08S01 [1] => 258

=> 258 [2] => [Microsoft][SQL Server Native Client 10.0]Shared Memory Provider: Timeout error [258]. [message] => [Microsoft][SQL Server Native Client 10.0]Shared Memory Provider: Timeout error [258]. ) [1] => Array ( [0] => 08S01 [SQLSTATE] => 08S01 [1] => 258
=> 258 [2] => [Microsoft][SQL Server Native Client 10.0]Communication link failure [message] => [Microsoft][SQL Server Native Client 10.0]Communication link failure ) [2] => Array ( [0] => 08S01 [SQLSTATE] => 08S01 [1] => -2147467259
=> -2147467259 [2] => [Microsoft][SQL Server Native Client 10.0]Communication link failure [message] => [Microsoft][SQL Server Native Client 10.0]Communication link failure ) )

If I see the error log it shows:

2010-10-17 12:32:38.88 Logon       Error: 18456, Severity: 14, State: 8.

2010-10-17 12

How to avoid buffering in memory even if I have already dispose the webs

  

When I try to connect to the sharepoint , the first time I use a valid account to login and then I use a invalid user to login. But  the invalid user also can get the data from sharepoint. Maybe this is caused by the memory buffering.

I use SPWeb::GetWebCollection();

webs.Dispose();

 


How to avoid memory leak when removing a tabitem with usercontrol as content

  

Hi,

I am using tabcontrol with tabitems having usercontrols as content.

When I remove a tabitem, I can see that the memory is not freed. I saw this problem has been discussed, but I have not found a complete response. I tried to do in this order, as suggested in some discussions in the forum:

this

 

 

.TabControlTest.Items.Remove(ti); // ti is a TabItem

ti.Content =

Top .NET Performance Problems and how to avoid them

  
Every time I work with one of our .NET customers to help them with managing their application performance I come across the same problems as seen with other clients before: lots of ADO.NET queries, many hidden exceptions in core or 3rd party .NET libraries, slow 3rd party components, inefficient custom code

file upload in chunks or not buffering in memory before writing to disk?

  

What are the options for handling file uploads to reduce the memory footprint?  Is there a way to upload in chunks?  Is there a way to stream upload directly to disk instead of loading entire file in server memory?


Thanks


Visual Studio 2008 Memory problems

  

My memory in task manager reaches about 900,000K  and I don't know why it does this. Definately slows everything down, especially when I rebuild my tableAdapters, takes about 30 seconds sometimes to rebuild the project.


Crystal Report gives System.AccessViolationException: Attempted to read or write protected memory. T

  

when a crystal report for same id is opened again at same time or refreshed then it gives the

"System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt."


Stack Trace is :-


Stack Trace:

[AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.]
CrystalDecisions.ReportAppServer.Controllers.DatabaseControllerClass.SetConnectionInfos(ConnectionInfos ConnectionInfos) +0
CrystalDecisions.CrystalReports.Engine.Table.ApplyLogOnInfo(TableLogOnInfo logonInfo) +362
CrystalDecisions.CrystalReports.Engine.ReportDocument.SetTableLogon(Tables tables, String user, String password, String server, String database, Boolean ignoreCase) +258
CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDatabaseLogon(String user, String password, String server, String database, Boolean ignoreCase) +204
CrystalDecisions.

Maximum memory for string ? . System.MemoryOutOfException Occurs when reading the Content of the fil

  

Hi,

I have a C++ code which reads a file [vtk file - its similar to text file only]. and try to store it in string.

here's the code:

String^ ParallelProjectionRenderer::GetVolumeDataAsString(String^ FileName)

{
    vtkSmartPointer<vtkDataSetWriter> sWriter = vtkSmartPointer<vtkDataSetWriter>::New();

    String^ FileName = "D:\\Users\\...";

    char * sptName = static_cast<char *>(Marshal::StringToHGlobalAnsi(FileName).ToPointer());

    sWriter->SetFileName(sptName);

    sWriter->Register(nullptr);

    sWriter->SetInput(this->dataSource);

    sWriter->SetFileTypeToASCII();

    sWriter->Write();

    sWriter->Delete();

    String^ result= File::ReadAllText(FileName);   [it breaks here with system.memoryoutofexception when the file size is huge]

    return result;

}

this code executes fine when the file size is less than 8mb.

I wanted to know whats the maximum memory allocated to the string.


As a workaround i skipped reading out in C++ code. and i tried to read the file contents in asp.net C# code and stor

Tools for memory error check in VS2005

  

Dear all,

I am going to write vs2005 program with ASP.NET and C++.

As you know that C++ will involve a lot of memory error handling.

Do you know is there any tools for checking memory error in Code Behind C++??


Entity Framework: Anti-Patterns To Avoid In N-Tier Applications

  

Danny Simmons explores some anti-patterns you should look out for when building n-tier applications with the Entity Framework.

Daniel Simmons

MSDN Magazine June 2009


CLR Inside Out: Memory Usage Auditing For .NET Applications

  

Memory usage can have a direct impact on how fast an application executes and thus is important to optimize. In this article we discuss the basics of memory optimization for .NET programs.

Subramanian Ramaswamy and Vance Morrison

MSDN Magazine June 2009


CLR Inside Out: Best Practices For Managed And Native Code Interoperability

  

There are many factors to consider when building your app with both managed and native code. Find out how to employ interop and how to choose the interop that's right for you.

Jesse Kaplan

MSDN Magazine January 2009


GUI Library: Bring the Simplicity of Windows Forms to Native Apps

  

In this article, author John Torjo presents a guide to his C++ GUI library called eGUI++ and explains how it makes user interface programming easier.

John Torjo

MSDN Magazine June 2008


WinUnit: Simplified Unit Testing for Native C++ Applications

  

Maria Blees introduces WinUnit, a handy new unit testing tool for native C++ projects.

Maria Blees

MSDN Magazine February 2008


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


Categories: 
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