2010-11-10 5 views
0

J'essaie d'utiliser des bibliothèques statiques écrites en c dans un iOS Projet. J'ai inclus les fichiers .lib et le .h dans le projet iOS. Lorsque j'essaie d'importer les fichiers d'en-tête dans l'une de mes classes objectives-C, j'obtiens beaucoup d'erreurs Expected '=',',',';','asm' or 'attribute' before... dans le fichier .h de ma bibliothèque statique. J'utilise xCode4 pour le développement qui semble avoir correctement ajouté les bibliothèques. Lorsque j'ouvre le projet avec Xcode 3, les bibliothèques sont ajoutées au groupe cible "link binary with libraries" comme indiqué dans How to resolve linking error - static lib iPhone.Utilisation de .lib statique (c) dans iOS Projet - Attendu '=', ',', ';', 'asm' ou 'attribut' avant

J'ai obtenu les bibliothèques statiques d'une société qui utilise réellement ces bibliothèques donc je suppose que le fichier d'en-tête n'est pas en faute. Je n'ai pas pu trouver d'erreurs moi-même.

Existe-t-il un moyen d'utiliser des fichiers .lib avec des fichiers d'en-tête corrects dans un projet ios? Ou dois-je faire autre chose que d'ajouter les fichiers lib au groupe cible afin de les utiliser dans mon projet?

Cordialement, Mike

modifier

le message d'erreur réelle:

attendu * avant * Expected '=', '', '', 'asm' ou 'attribute' avant _far _pascal

Le code réel où l'en-tête est importé:

#import <Foundation/Foundation.h> 
#import "SomethingDll.h" 


@interface AccountingEntry : NSObject { 
    NSString *entryDescription; 
    NSDate *entryDate; 
    double entryAmount; 
    NSString *entryType; 

} 

@property (nonatomic, retain) NSString *entryDescription; 
@property (nonatomic, retain) NSDate *entryDate; 
@property (nonatomic) double entryAmount; 
@property (nonatomic, retain) NSString *entryType; 

//class methods go here 

//instance methods go here 
-(id)initWithDescription:(NSString *)eDesc date:(NSDate*)eDate amount:(double)eAmount type:(NSString *)eType; 


@end 

Le fichier .h de la lib.

#ifndef __SOMETHING_DLL 
#define __SOMETHING_DLL 



// constants for a function 

#define FIRST_ERRTEXT 0 
#define NEXT_ERRTEXT 1   

/* 
... 
some other #define of constants 

*/ 

// Callback-Pointer Definitionen 

#define INFO_FUNC_DECL   BOOL (CALLBACK *lpInfoFunc)(int) 
#define FILETRANS_FUNC_DECL  void (CALLBACK *lpFileTransFunc)(int,long) 


// Funktionsdeklarationen 

#ifdef WIN32 
#define IMPORTAPI WINAPI 
#else 
#define IMPORTAPI _far _pascal 
#endif 


#ifdef __cplusplus 
extern "C" { 
#endif 

    void IMPORTAPI Something_Config(  int iLogLevel,     char *szLogFile,  
           long lTimeOut_Connect,   long lTimeOut, 
           long lTimeout_GetFile,   long lTime_Info, 
           int iSSLVersion,    char *szSSLCipher, 
           char *szVerifyCertificateFile, char *szVerifyCertificatePath); 
/* 
    ... 
    a lot of other functions 
    ... 
*/ 
#ifdef __cplusplus 
} 
#endif      

#endif // End 
+0

Certains messages d'erreur réels peuvent faciliter le diagnostic du problème. –

+0

Ou un code réel où les fichiers d'en-tête sont importés – Eimantas

+0

J'ai ajouté le code actuel, le message d'erreur et le fichier .h de la lib. Je vous remercie. –

Répondre

1

Il coutures que cette lib est pour Win32, la directive _far _pascal est pas disponible sur gcc et les autres erreurs peuvent provenir de définitions manquantes. Peut-être que vous devez chercher une autre lib pour faire le travail.

+0

cela signifie-t-il que toute la bibliothèque est inutilisable sur IOS? Je ne suis pas vraiment familier avec c. que fait __far _pascal? –

+0

Il semble y avoir ... Il y a beaucoup de lib pour iOS, vous pouvez sûrement en trouver un pour faire le travail. '_far _pascal' = "Les modificateurs _far _pascal" utilisent la convention normale de passage des paramètres DLL, qui spécifie que les DLL sont dans un segment séparé ("_far") et que le paramètre "_pascal" est utilisé, ce qui signifie que les paramètres passé de gauche à droite et que la fonction appelée nettoie la pile "(http://www.ubercode.com/learning-to-write-programs-in-c.html) –

+0

ok. Merci beaucoup. –

Questions connexes