jag vill anropa förljande c++ funktion från c#
int getBitmap(HBITMAP hSourceBitmap)
{
//jadda jadda
return 0;
}
c# har inget som heter HBITMAP utan använder sig av en intptr..
Hur gör jag då?
obs.. är helt ny på c++ så detta kanske är en förbannat korkad fråga men har försökt lösa detta i några timmar.. :)
nikoMedlem sedan juni 20022 599 inlägg Förstår inte riktigt om du vill porta en funktion som är skriven i C++ (C) eller om du vill importera binär kod från en Dll skriven i C++ (C)? Jag tolkar det som att du menar det senare:
using System.Runtime.InteropServices;
// ..
public class DinKlass
{
[DllImport("dindll.dll", EntryPoint="getBitmap")]
public static extern int getBitmap(IntPtr hSourceBitmap);
// ..
}
UlfTMedlem sedan maj 20018 027 inlägg jo.. i .NET används intptr för hbitmap men för c++ (inte .net) så finns väl inte intptr? utan där vill fromhbitmap ha en hbitmap variabel..
så för tillfället bygger jag i c++.net
Är det någon prestandaskillnad i c++ och c++.net?
Skall bygga lite blur, treshold, flip och andra kul filter.
Jag behöver inte superoptimera koden utan bara att jag inte gör det på ett jättslångsamt sätt :)
UlfTMedlem sedan maj 20018 027 inlägg
henrikjohansson skrev:
jo.. i .NET används intptr för hbitmap men för c++ (inte .net) så finns väl inte intptr? utan där vill fromhbitmap ha en hbitmap variabel..
Jo, men om jag förstår det rätt, så är IntPtr något som kan peka på lite av varje, t ex en HBITMAP. Då skulle du inifrån C# kunna ta en pekare till en HBITMAP, och med hjälp av FromHbitmap, få en Bitmap som du kan hantera i .Net-miljön.