2011-04-02 18 views
0

這爲什麼有效?int如何成爲AssetManager?

AssetManager* am = (AssetManager*)env->GetIntField(obj, gAssetManagerOffsets.mObject); 

env->env->GetIntField()返回Int。爲什麼它可以轉換爲AssetManager?該代碼來自文件android_util_AssetManager.cpp

+0

增加了C++標籤,認爲你將有更多的運氣與這些傢伙:p – Klaus 2011-04-02 10:48:36

回答

2

返回的int是一個指向AssetManager的指針。 (AssetManager*)告訴你這是一個指向AssetManager的指針。

所以,它返回一個int,它恰好是一個指向AssetManager的指針。它不返回AssetManager。

這個Tutorial on Arrays and Pointers in C可能會幫助你。第5章顯示了您在所提到的代碼中看到的語法。

+0

謝謝你的回覆。我檢查了代碼,發現有一行:'env-> SetIntField(clazz,gAssetManagerOffsets.mObject,(jint)am);'。所以我明白了。 – Judy 2011-06-24 03:06:50

+0

太棒了!如果我的回答對你有幫助,你會點擊左邊的綠色複選標記嗎?謝謝! – 2011-06-24 03:19:03