2011-07-09 6 views
2

J'essaie de créer une bibliothèque C++ statique simple que je peux lier dans une application MonoTouch et invoquer les fonctions via MonoTouch. Je suis en train de compiler la bibliothèque statique dans XCode et ont ce (sous la direction depuis des corrections de Ildjarn):Quel est le problème avec cette classe?

class MyClass 
{ 
public: 
    static int Get5() { return 5; } 
    static int Get10() { return 10; } 
}; 

Je reçois l'erreur suivante sur la première ligne:

attendu « = », ' , ' '', 'asm' ou ' attribut 'avant 'MaClasse'

Toutes les idées pourquoi? En outre, puis-je compiler une bibliothèque statique dans Visual Studio et la lier dans une application MonoTouch ou est-ce impossible?

Répondre

2

décorateurs d'accessibilité membres sont suivis par deux points en C++, comme des étiquettes ou changer de cas -

class MyClass 
{ 
public: 
    static int Get5() { return 5; } 
    static int Get10() { return 10; } 
}; 

Aussi, décorateurs d'accessibilité ont aucun effet sur les types scope espace de noms en C++, donc public class MyClass est absurde.

+0

oh oui, cela fait un moment que j'ai écrit du code C++ -_- Malheureusement, vos correctifs ont créé une nouvelle erreur, 'type inconnu' classe, vouliez-vous dire 'Class' et l'erreur précédente est toujours présente. – tweetypi

+0

@meds: Non, ce code compile parfaitement tel quel: [démonstration] (http://ideone.com/D23XL). Les problèmes que vous rencontrez sont liés au code que vous ne nous avez pas montré. – ildjarn

2

Vous mélangez Java avec C++. Obmit le « public » avant la classe et changer l'autre « public » à « public: »

2
class MyClass 
{  
    public: 
    int Get5()  
    {   
     return 5;  
    }  
    int Get10()  
    {   
     return 10;  
    } 
}; 

Ou probablement vous avez besoin de le compiler avec /clr drapeau compilateur (avec votre code d'origine).

+0

Comment définir l'indicateur de compilateur/clr dans xcode? – tweetypi

+0

Je suis désolé, je ne sais pas. Vous ne savez pas s'il peut compiler du code C++ géré. Peut-être que vous avez besoin d'exporter des fonctions/classe de manière native. – Ajay