Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


OutOfMemoryException

Postades av 2003-07-09 00:05:14 - Roger Aspelin, i forum c# (c-sharp), Tråden har 6 Kommentarer och lästs av 894 personer

Hej

Har ett problem med ett C# Class Library jag håller på med. Jag får OutofMemoryexception. Tänkte höra om någon har tips på vad det kan vara...

Raden som genererar felet är,
cscons(out RC, out ConvId,SecurInfo,ConnTimeOut,SenderTag,Partner,Initiator);

cscons definition
[DllImport("vcomcl32.dll")]
public static extern short cscons(out short RC, out CONVID_TYPE ConvId, SECURE_TYPE SecInfo, int TimeOut, string Sendertag, string Partner, string Initiator);

Secure_type definition

[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]
public struct SECURE_TYPE // Security information
{
public int Len; // Length of data area
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=99)]
public string Data; // Data area
}

Convid_type definition

[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]
public struct CONVID_TYPE
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst=8)]
public char NetName; // Network name of initiator
[MarshalAs(UnmanagedType.ByValArray, SizeConst=8)]
public char NodeName; // Node name of initiator
[MarshalAs(UnmanagedType.ByValArray, SizeConst=14)]
public char SessionId; // Timestamp (YYYYMMDDhhmmss)
[MarshalAs(UnmanagedType.ByValArray, SizeConst=4)]<
public char SeqNr; // Sequence number
}

Övriga definition
public short RC;
public int ConnTimeOut = 10;
public string SenderTag = "GENINT";
public string Partner;
public string Initiator = "GENINT";

Innan jag anropar cscons anropar jag två liknande anrop mot samma dll som fungerar. Dessa två innehåller dock inte Secure_type och Convid_type, misstänker att dessa ställer till problemet. Det finns inga minnes problem på maskinen.

Tips mottages tacksamt

//Roger


Svara

Sv: OutOfMemoryException

Postades av 2003-07-09 09:05:42 - Patrik Löwendahl

Du gör en marshal från en char till en array!?

Det borde inte funka, får du en array tillbaka från unmanaged kod, så vinns det definivt inte plats nog att lagra en array av ngt.

Ska det vara en array där? Hur ser C++ definitionen av structen ut?


Svara

Sv: OutOfMemoryException

Postades av 2003-07-09 13:17:26 - Roger Aspelin

Hej

Koden är ursprungligen från VB.NET där den fungerar utmärkt. Med detta vill jag dock inte på något sätt säga att den borde göra det här, men det kanske kan vara bra att veta?!

Jag har hittat structen för C och den ser ut på detta sätt... Kan tillägga också att efter ytterligare felsökning så är det helt klart (99%) att det är detta som ställer till problemet!

//Roger

/*
* CSID - Conversation ID
*/

#ifndef CSID_H
#define CSID_H

struct csid
{
char id[34];
};

typedef struct csid CSID;

#endif


Svara

Sv: OutOfMemoryException

Postades av 2003-07-09 13:42:59 - Patrik Löwendahl

Låter konstigt att det funkade så där i vb.net .. men å andra sidan så är vb.net väldigt förlåtande, och oerhört dålig på att enforca saker ..

Jag hävdar fortfarande att du inte kan kasta om en char i .net till en ref array i unmamaged world, låter helt vansinnigt .. Prova char[] istället ..


structen du skickade ser dessutom inte alls ut som de två du definerat i din kod?


Svara

Sv: OutOfMemoryException

Postades av 2003-07-09 16:29:17 - Mattias Sjögren

Förutom det Patrik har sagt (ändra char till char[]) så undrar jag om inte SECURE_TYPE paramtern ska vara deklarerard som ref.

..., out CONVID_TYPE ConvId, ref SECURE_TYPE SecInfo, int TimeOut, ...


MS


Svara

Sv: OutOfMemoryException

Postades av 2003-08-23 17:09:24 - Roger Aspelin

Hej,

Semester gjorde att det tog ett tag innan jag hade möjlighet att svara. Har testat både det Patrik skrivit och lagt till ref enligt ovan. Men ingen framgång fick följande fel när jag lägger till ref...

Argument '3': cannot convert from 'Vcom.SECURE_TYPE' to 'ref Vcom.SECURE_TYPE'

Har givit upp, Den del får vara kvar i VB.NET så skriver jag om resterande del av programmet i C#... tackar för hjälpen i alla fall.

Roger


Svara

Sv: OutOfMemoryException

Postades av 2003-08-23 19:30:47 - Patrik Löwendahl

när du anropar metoden så måste du också ange ref

dvs

public void mymethod(ref object o)
{}

anrop

object o = whaever;
mymethod(ref o);


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 155
27 952
271 704
6 131
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies