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


out parameter

Postades av 2005-11-24 11:16:29 - Simon Dahlbacka, i forum asp.net generellt, Tråden har 8 Kommentarer och lästs av 813 personer

Försöker få till en metod i C++/CLI som skall användas från C#, i C# vill jag att signaturen skall vara

void Foo(int bar, out int baz);


men lyckas bara få till

void Foo(int bar, ref int baz);


så hur göra i C++/CLI för att få till out parametrar?


Svara

Sv: out parameter

Postades av 2005-11-24 21:24:59 - Martin Adrian

<code=c++>
void Foo(int bar, [out] int %baz);
</code>


Svara

Sv:out parameter

Postades av 2005-11-24 21:56:18 - Simon Dahlbacka

konstigt, är säker på att jag testat det (och såg den som ref int), men kanske användande programmet inte uppdaterade referenserna korrekt då eller nåt sånt..


Svara

Sv: out parameter

Postades av 2005-11-25 08:18:17 - Simon Dahlbacka

hmm, när jag testar med riktig kod

void GetConfigInfo([out]unsigned short% pConfBase, [out]unsigned short% pConfCount);


så går det inte alls, får alla möjliga skumma meddelanden om att out cannot be repeated, och can only appear on a data-pointer type


Svara

Sv:out parameter

Postades av 2005-11-25 11:58:23 - Oskar Johansson

Nu spånar jag bara lite utan att ha kännedom om hur c++ rent kodmässigt gör med sina pekare...

Jag tror att det borde vara något i stil med:
1) Skicka in en pekare som pekar på en adress
2) På den adressen finns en pekare som du sedan kan peka om mot vad du vill, alternativt ett värde som du kan ändra
3) När funktionen är klar så är det bara att titta på den adress som den första pekaren pekade på, där kommer det antingen att finnas en till pekare eller ett värde.

Eftersom att short är en värdetyp så borde det vara så att du ska ta emot en pekare på en short. Sedan ändrar du värdet på det ställe där pekaren pekar. Den teorin skulle nog också kunna stämma med felmeddelandet tror jag.


Svara

Sv: out parameter

Postades av 2005-11-25 12:52:08 - Martin Adrian

>Nu spånar jag bara lite utan att ha kännedom om hur c++ rent kodmässigt gör med sina pekare...

Frågan var angående C++/CLI inte C++. (C++/CLI är ett .Net språk som har ungefär samma syntax som C++ men skiljer sig ganska mycket i övrigt)

Du har dock rätt i ditt resonemang: Jag glömde en "^" ovan

void foo([out] String^% bar);

(dvs man skickar in en referens '%' till ett ref objekt på heap '^')

Se här: http://www.winterdom.com/cppclifaq/archives/000421.html


Svara

Sv:out parameter

Postades av 2006-01-10 07:20:02 - Simon Dahlbacka

Fixat det hela nu, verkar som om kompilatorn trodde jag försökte mej på att skriva MIDL kod när jag skrev <b>[out]</b>
däremot om jag skrev

using namespace System::Runtime::InteropServices;
...
void GetConfigInfo([Out]unsigned short% pConfBase, [Out]unsigned short% pConfCount);

så funkade det hela som jag ville.

(dvs, med stora bokstäver, (System::Runtime::InteropServices::OutAttribute))

kanske kan hjälpa nån annan..


Svara

Sv: out parameter

Postades av 2006-03-01 08:10:16 - Daniel Petersson

du bör undvika out parameterar och i stället använda returvärden.
Det get bättre prestanda och stämmer bättre med BCLs programmeringsmodell.


Svara

Sv:out parameter

Postades av 2006-03-01 08:15:04 - Simon Dahlbacka

I normala fall jo kanske, men det är inte möjligt i detta fall pga. övriga omständigheter.


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 603
27 953
271 705
5 902
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