en passant char tableau de pointeurs de dLL c++ c# string
considérer le code c++ suivant
#include "stdafx.h"
#include<iostream>
using namespace std;
this much part i want in c#..
void ping(int,char* d[]);
void ping(int a,char *b[])
{
int size;
size=sizeof(b)/sizeof(int); //total size of array/size of array data type
//cout<<size;
for(int i=0;i<=size;i++)
cout<<"ping "<<a<<b[i]<<endl;
}
et ci-dessous une partie est en c++
int _tmain(int argc, _TCHAR* argv[])
{
void (*funcptr)(int,char* d[]);
char* c[]={"a","b"};
funcptr= ping;
funcptr(10,c);
return 0;
}
comment puis-je mettre en œuvre le même en c#..
suis nouveau en c#. comment puis-je avoir des char tableau de pointeurs en c#?
- Cela aidera à: http://msdn.microsoft.com/en-us/library/ezftk57x.aspx
sizeof(b)/sizeof(int)
- il n'est pas très bon de code C++. Ne l'utilisez pas comme un exemple.- oui, vous avez raison, j'étais dans le mauvais sens 🙂 Merci à vous!
- merci une autre fois
- -1 - vos commentaires tout au long de ce fil implique un sujet complètement différent de celui présenté dans votre OP.
Vous devez vous connecter pour publier un commentaire.
Vous l'habitude d'éviter les
char*
ouchar[]
en faveur de la chaîne classe. Plutôt que d'avoir unchar* d[]
, vous avez unstring[] d
au lieu de cela, si vous voulez un tableau de chaînes de caractères, ou un simplestring d
si vous ne voulez qu'une seule liste de caractères.L'interopérabilité entre C++ et C# est toujours délicat. Quelques bonnes références Passer de chaînes C# C++ et de passer à C++ résultat (string, char*.. que ce soit) à C# et À l'aide de tableaux et pointeurs en C# avec DLL C.
char*d[]
à une méthode C# (comme en C++, C#, interop) ou tout simplement la mise en œuvre d'un concept similaire en C#?Un
string
est une liste de caractères. Avec votre mention du caractère de la manipulation et de votre utilisation de boucles, je suis en supposant que votre préoccupation est avec un ciblage particulier des caractères à partir d'une liste/tableau - et en ce sens, vous pouvez presque à l'identique lors de l'examen des caractères particuliers à partir d'unstring
(comme si c'était unchar
tableau).Par exemple:
testChar, dans ce cas, sera égal à 'l'.
Tout d'abord, votre code "C++" est en réalité C et la mauvaise C, à l' - il ne sera pas exécuté correctement à toutes les.
sizeof(b)
sera pas vous donner la taille du tableau ou quelque chose comme ça, il va vous donner la taille d'un pointeur. Envisager la rédaction d'une bonne C++ avant de tenter de les convertir en C#.C# n'a pas de manière statique de la taille des tableaux, mais le reste est facile à faire
Cela devrait vous aider, à noter toutefois que la taille de la mémoire tampon de sortie est fixe, donc cela ne fonctionnera pas pour la dynamique de la taille des chaînes, vous devez connaître la taille à l'avance.
N'oubliez pas de permettre code unsafe, puisque c'est la seule façon vous pouvez utiliser les pointeurs en C# (cliquez-Droit sur le projet, propriétés, de construire, d'autoriser le code unsafe).
La prochaine fois, soyez plus précis et clair, et d'essayer d'agir avec plus de respect envers les gens d'ici, nous ne sommes pas payés pour vous aider, vous savez 🙂
nous pouvons le faire comme
dans la DLL, nous aurons