0
我有兩個源文件:C/C++函數返回的NaN在MonoTouch中當p /調用
File.h:
class Numbers
{
public:
int Get10();
int Get192();
float GetFloat();
};
File.cpp:
int Numbers::Get10()
{
return 10;
}
int Numbers::Get192()
{
return 192;
}
float Numbers::GetFloat()
{
return 3213.1294124f;
}
extern "C"
int Get10()
{
Numbers n;
return n.Get10();
}
extern "C"
int Get192()
{
Numbers n;
return n.Get192();
}
extern "C"
int GetFloat()
{
Numbers n;
return n.GetFloat();
}
予編譯這些到一個靜態庫(libNumbers.a)並通過以下mtouch參數與MonoTouch鏈接:
-v -v -v -gcc_flags 「-cxx -framework安全-L $ {} PROJECTDIR -lNumbers -force_load $ {} PROJECTDIR /libNumbers.a」
那麼C#源文件我有此:
[DllImport("__Internal",EntryPoint="GetFloat")]
public static extern float GetFloat();
當我打電話GetFloat()從C#源內部文件中 '的NaN',而不是3213.1294124f返回的值。如果我調用Get10,但是我實際上得到了正確的返回值。
很好看!可惜它不能解決我的問題:(仍然從GetFloat獲得NaN,我甚至從Get10獲得NAN,所以我不認爲它與功能本身有關 – tweetypi
然後編輯問題 – unkulunkulu
@meds,實際上,如何獲得NAN的整數值?請提供C#代碼中其他函數的聲明。 – unkulunkulu