私がバインドしているObjectiveCライブラリには、アプリケーションでアクセスする必要のあるCスタイルの関数がいくつかあります。これらをバインディングに追加して、C#アプリケーションでアクセスできるようにすることはできますか?
Cocos2dの例:
void ccGLActiveTexture( GLenum textureEnum )
{
#if CC_ENABLE_GL_STATE_CACHE
NSCAssert1( (textureEnum - GL_TEXTURE0) < kCCMaxActiveTexture, @"cocos2d ERROR: Increase kCCMaxActiveTexture to %d!", (textureEnum-GL_TEXTURE0) );
if( (textureEnum - GL_TEXTURE0) != _ccCurrentActiveTexture ) {
_ccCurrentActiveTexture = (textureEnum - GL_TEXTURE0);
glActiveTexture( textureEnum );
}
#else
glActiveTexture( textureEnum );
#endif
}
編集
インポートしようとしている関数を含むヘッダーへのリンク:http: //www.cocos2d-iphone.org/api-ref/2.0.0/cc_g_l_state_cache_8h_source.html
Extras.csでこれを試しました
public partial class CCGLProgram {
[DllImport("__Internal")]
public static extern void ccGLUseProgram( uint program );
public static void CCGLUseProgram(uint test)
{
ccGLUseProgram(test);
}
}
残念ながら、エントリポイントが見つかりませんというエラーが発生します。私の最初の考えは多分関数が壊れていることだと思いますが、「外部C」があるので、起こってはいけないことだと思いましたか?誰か助けてもらえますか?