Je dois appeler une méthode native d'une DLL non gérée à partir de C#. Le code source DLL n'est bien sûr pas disponible (fourni par un "tiers").Comment implémenter un rappel en C# pour récupérer le code retour d'une méthode DLL native avec plusieurs arguments
méthode de DLL native est censé accepter deux arguments et renvoie un code de nombre entier (natif):
MyDLLNativeMethod (string filename, int returnCode)
Le premier argument de la méthode de DLL native est une chaîne (filename) & second doit être une "référence" pour rassembler le code retour après l'exécution. Je suis confus sur la façon d'obtenir le code de retour. Les appels de DLL fonctionnent correctement, produisant des fichiers attendus basés sur le premier argument.
Comment est-ce que je devrais mettre en application le rappel désiré pour effectuer l'opération sur différentes valeurs de codes de retour récupérées?
// ~~~~~~~~~~~~~~~~~~~~
// Main entry point
// ~~~~~~~~~~~~~~~~~~~~
namespace MyProject
{
class Program
{
static void Main(string[] args)
{
MyDLLCaller _dllcaller = new MyDLLCaller();
_dllcaller.MyDLLNativeMethod("test_file.txt");
}
}
}
// ~~~~~~~~~~~~~~~~~~~~
// DLL calling class
// ~~~~~~~~~~~~~~~~~~~~
namespace MyProject
{
class MyDLLCaller
{
// DLL Loading
[DllImport(@"C:\test\mydll.dll")]
public static extern int MyDLLNativeMethod(string _filename);
// Native DLL method pseudo code :
// MyDLLNativeMethod(string filename, int returncode).
}
}
Merci à l'avance
Est-ce que cela fonctionne pour vous? Voulez-vous marquer la réponse comme acceptée? – mortb