0
Let's考慮從Qt的文檔這個片段:QLibrary's解析函數只有一個參數?
QLibrary myLib("mylib");
typedef void (*MyPrototype)();
MyPrototype myFunction = (MyPrototype) myLib.resolve("mysymbol");
if (myFunction)
myFunction();
這會加載一個.dll到內存中,並解決符號「mysymbol」,這樣我就可以用「myFunction的」。我在這裏工作。我也可以調用myFunction(arg_1)。
但是,當我打電話myFunction的(ARG_1,arg_2)我得到一個「太多的參數功能」誤差。 那麼,它真的只可以調用myFunction的1種說法或者是有什麼I'm失蹤?
是'mysymbol'一個'EXTERN C'功能?你在調整你的MyPrototype嗎? – Mat
是的,我用extern C聲明瞭它。我不認爲我必須調整原型(無論如何),因爲錯誤發生在編譯時,所以沒有與.dll的連接。 – LarissaGodzilla
如果'mysymbol'有兩個參數(說'int's),在此代碼(不是在庫),您需要調整您的MyPrototype'typedef'相匹配。該typedef和庫中的實際功能_must_相匹配。 – Mat