Ceci est mon premier post ici! J'essaie de créer un programme Windows Forms en utilisant C# qui utilisera une bibliothèque C précompilée. Il va accéder à une carte à puce et en fournir une sortie. Pour la bibliothèque, j'ai un .dll, .lib et .h et aucune source. Dans le fichier .h, plusieurs structures sont définies. Les fonctions les plus intéressantes du fichier .dll attendent des pointeurs vers des structures allouées en tant qu'arguments. J'ai appelé fonctions à l'intérieur du .dll comme ceci: Par exemple la fonctionComment appeler les fonctions à l'intérieur d'un DLL qui prend les pointeurs comme arguments de C#
EID_API int WINAPI EidStartup(int nApiVersion);
serait appelé comme ça
[DllImport("CelikApi.dll")]//the name of the .dll
public static extern int EidStartup(int nApiVersion);
Maintenant, mon problème est que je ne peux pas trouver l'équivalent des pointeurs de C qui pointer vers des structures dynamiquement allouées en mémoire en C#, donc je ne sais pas quoi passer en argument aux fonctions qui prennent des pointeurs en C.
Je n'ai pas beaucoup d'expérience en C#, mais pour moi, son utilisation était la façon la plus simple de créer le programme dont j'avais besoin. J'ai essayé avec C++, mais Visual Studio 2010 n'a pas IntelliSense pour C++/CLR. Si vous pouvez me diriger vers quelque chose de mieux, n'hésitez pas à le faire.