Vorrei imparare ad utilizzare del codice C++ in un progetto C# Windows Form. In pratica mi servirebbe un esempio che mi faccia capire come utilizzare dei metodi implementati in C++ in un progetto C#.
Vorrei imparare ad utilizzare del codice C++ in un progetto C# Windows Form. In pratica mi servirebbe un esempio che mi faccia capire come utilizzare dei metodi implementati in C++ in un progetto C#.
Fracty - The Fractal Generator
If you cannot choose a concise name that expresses what the method does, it is possible that your method is attempting to perform too many diverse tasks.
Esempi di codice si possono trovare generalmente con una ricerca su Google.Originariamente inviato da GliderKite
Vorrei imparare ad utilizzare del codice C++ in un progetto C# Windows Form. In pratica mi servirebbe un esempio che mi faccia capire come utilizzare dei metodi implementati in C++ in un progetto C#.
Inoltre, credo sia opportuno definire con molta precisione cosa si intende per utilizzare codice...
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Certo, speravo solo ci fosse qualcuno che avesse già utilizzato codice C++ in un progetto C#.
Utilizzare codice? L'ho scritto, mi chiedevo come richiamare un metodo (una funzione) scritta in C++ per utilizzarla appunto nel progetto in C#.
Faccio un esempio:
Se ho un file .h dove ho dichiarato e definito (eventualmente in un altro file .cpp) l'implementazione di una classe:
codice:class Foo { public: void f(); // La funzione che voglio richiamare nel progetto C# };
Come devo fare? Ovviamente lo stesso discorso varrebbe senza l'utilizzo di un metodo di una classe, se avessi a disposizione ad esempio una funzione globale, etc...
Fracty - The Fractal Generator
If you cannot choose a concise name that expresses what the method does, it is possible that your method is attempting to perform too many diverse tasks.
Ma non fai prima a cercare su Google?![]()
http://lmgtfy.com/?q=use+c%2B%2B+code+in+c%23
![]()
Originariamente inviato da gibra
Ma non fai prima a cercare su Google?![]()
http://lmgtfy.com/?q=use+c%2B%2B+code+in+c%23
![]()
![]()
Vedi che io ho cercato e letto su Google, ma avere più pareri è sempre meglio per cercare di capire non solo come si fanno le cose, ma qual'è la strada migliore per farla. Per questo ho deciso di aprire la discussione, ma se questa filosofia cosi vicina ai programmatori qui da cosi fastidio possiamo pure chiudere la discussione.![]()
Fracty - The Fractal Generator
If you cannot choose a concise name that expresses what the method does, it is possible that your method is attempting to perform too many diverse tasks.
Bisogna creare delle classi Wrapper e inlotre devi conoscere un pò di "Marshalling" altrimenti la vedo dura.![]()
I got the remedy
Un piccolo esempio:
Il metodo in c++
e l'utilizzo in C#codice:__declspec(dllexport) void pcBuildProfiles(unsigned char * pImage,int iWidth, int iHeight,int iWidthStep, int iLaserOrientation,int threshold, float * fvCentroids,float * fvWeights,int iVectorDim) { // Codice..... }
codice:[DllImport("ProcessCore.dll")] public static unsafe extern void pcBuildProfiles(byte* pImage, int iWidth, int iHeight, int iWidthStep, int iLaserOrientation, int threshold, float* pfvCent, float* pfvWei, int iVectorDim); public void BuildProfiles(ref Bitmap srcImage, byte threshold) { unsafe { BitmapData BD = srcImage.LockBits(new Rectangle(0, 0, srcImage.Width, srcImage.Height), ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed); fixed (float* pfvCentroids = fvCentroids) { fixed (float* pfvWeights = fvWeights) { pcBuildProfiles((byte*)BD.Scan0, srcImage.Width, srcImage.Height, BD.Stride, iLaserOrientation, threshold, pfvCentroids, pfvWeights, iVectorDim); } } } srcImage.UnlockBits(BD); } }
![]()
Sbagliare è umano, perseverare è diabolico.