Je sais que le titre semble un peu étrange, mais cela a été ahurissant mon esprit un peu. Donc, Intel offre ce gadget barre latérale TurboBoost avec des appels en utilisant JavaScript, et je veux écrire un programme à partir de zéro en C# qui fait la même chose. Les appels proviennent de ce que je crois être une DLL ActiveX que j'ai facilement importé. Le problème est, chaque fois que j'essaie d'appeler une fonction, il me donne l'erreur "une référence d'objet est nécessaire pour le champ non-statique ..." J'ai trouvé toutes les fonctions par ex. celui que j'ai utilisé renvoie une structure de données dynamique. J'ai essayé de diviser les fonctions et les ai rendues toutes les deux statiques mais toujours pas de chance. Voici le code (ITurboBoostClient est la partie d'interface):Appel d'une fonction dynamique dans une erreur d'objet
namespace TurboBoostMon_CLI
{
class Program
{
public static object GetCPUFreq()
{
object n = ITurboBoostClient.GetCurBaseFrequency(); //<---- error
//return Convert.ToDouble(n);
return n;
}
public static void Main(string[] args)
{
object cpubasefreq = GetCPUFreq();
Console.WriteLine(cpubasefreq); // neglect the output for now
}
}
}
Très semblable à ma réponse, avec la mise en garde que le nouveau ne fonctionnera probablement pas, car ce programme n'a presque certainement pas la définition complète de la classe ou la connaissance de comment l'instancier. C'est pourquoi j'ai poussé à trouver une méthode statique dans la bibliothèque. – abelenky
La plupart de ce que j'ai travaillé avec ActiveX a fourni un accès direct pour instancier une nouvelle instance d'un objet. Cependant, c'est un peu limité, alors ce n'est peut-être pas toujours le cas. –