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


Återanvända C-kod i ett C# projekt

Postades av 2006-11-02 16:07:03 - Pär Nygren, i forum asp.net generellt, Tråden har 1 Kommentarer och lästs av 542 personer

Hej,

Jag vill kunna återanvända beräkningsrutiner utvecklade i C i ett C# projekt.

Jag använder Visual Studio och har skapat två projekt i min Solution. Ett C#-projekt och ett C++-projekt.

C++-projektet består av den C-kod som jag vill återanvända och C++-kod som representerar den "Wrapper" som anropar C-koden. C-koden definierar en struct och en funktion som returnerar en struct av den typen. Med hjälp av "Wrappern" vill jag kunna återanvända och anropa funktionen som är definierad i C-koden. Detta fungerar men jag kommer inte åt structens fält i C#-projektet. Varför gör jag inte det?

Nedan har jag försökt skriva ett utdrag av koden. Hoppas att jag lyckats förklara mitt problem tillräckligt och att någon kan hjälpa mig...

Mvh
Pär Nygren


### C++-projektet ###
----------------------
<<< C.h >>>
----------------------
#ifndef __C_H
#define __C_H

#if defined(__cplusplus)
extern "C" {
#endif

struct SPOINT {
double dblX;
double dblY;
};

SPOINT CreatePoint(double dblX, double dblY);

#if defined(__cplusplus)
}
#endif

#endif
----------------------
<<< C.cpp >>>
----------------------
#include "C.h"

SPOINT CreatePoint(double dblX, double dblY);
{
SPOINT p;
p.dblX = dblX;
p.dblY = dblY;

return p;
}
----------------------
<<< CWrapper.h >>>
----------------------
#ifndef __CWRAPPER_H
#define __CWRAPPER_H

#include "C.h"

namespace CWrapper {
public __gc class CWrapper {
public:
SPOINT CWrapperCreatePoint(double dblLatitude, double dblLongitude);
};
}

#endif
----------------------
<<< CWrapper.cpp >>>
----------------------
#include "CWrapper.h"
#include "C.h"

SPOINT CWrapper::CWrapper::CWrapperCreatePoint(double dblLatitude, double dblLongitude) {
SPOINT p = CreatePoint(dblLatitude, dblLongitude);

return p;
}
----------------------


### C#-projektet ###
----------------------
<<< Form1.cs >>
private void Btn_Click(object sender, System.EventArgs e) {
CWrapper o = new CWrapper();
SPOINT p = o.CWrapperCreatePoint(12, 14);
// I debugg-läge kan jag se att structen p har fälten dblX och dblY och att deras värden är satta till 12
// respektive 14
double dblX = p.dblX; //Denna rad resulterar i ett kompileringsfel
}


Svara

Sv: Återanvända C-kod i ett C# projekt

Postades av 2006-11-03 02:24:07 - Oskar Johansson

Du måste skapa en managed struct också. Sedan får du nog kopiera från din unmanaged struct till din managed struct.


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 600
27 953
271 705
4 178
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