Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
luc
unbewust wrote:
je cherche moins à développer de l'ObjC/Cocoa que de l'ObjC à ajouter dans des extensions C pour Ruby.
Je ne vois pas ce qu'un livre sur ObjC, le langage, t'apporterait de concret sur l'art et la manière d'en incorporer dans une extension Ruby, ce qui est un cas particulier d'une part, qui se trouve être totalement trivial d'autre part.
-- Luc Heinrich
unbewust <yvon.thoraval@gmail.com> wrote:
je cherche moins à développer de l'ObjC/Cocoa que de l'ObjC à ajouter
dans des extensions C pour Ruby.
Je ne vois pas ce qu'un livre sur ObjC, le langage, t'apporterait de
concret sur l'art et la manière d'en incorporer dans une extension Ruby,
ce qui est un cas particulier d'une part, qui se trouve être totalement
trivial d'autre part.
je cherche moins à développer de l'ObjC/Cocoa que de l'ObjC à ajouter dans des extensions C pour Ruby.
Je ne vois pas ce qu'un livre sur ObjC, le langage, t'apporterait de concret sur l'art et la manière d'en incorporer dans une extension Ruby, ce qui est un cas particulier d'une part, qui se trouve être totalement trivial d'autre part.
-- Luc Heinrich
unbewust
On 15 août, 17:03, (Luc Heinrich) wrote:
unbewust wrote:
je cherche moins à développer de l'ObjC/Cocoa que de l'ObjC à ajo uter dans des extensions C pour Ruby.
Je ne vois pas ce qu'un livre sur ObjC, le langage, t'apporterait de concret sur l'art et la manière d'en incorporer dans une extension Ruby, ce qui est un cas particulier d'une part, qui se trouve être totalement trivial d'autre part.
-- Luc Heinrich
bah si c'est trivial alors....
sous les conseils de Bourguignon j'ai fait un petit test que j'arrive à compiler "à la main" : une première passe sur l'ObjC puis après j'utilise extconf.rb/mkmf et ça roule.
la première passe en ObjC ne génère pas les liens, si je vérifie (a vec otool) j'ai les bons symboles.
mais je ne vois pas ce qu'il faut passer comme id obj depuis C à la méthode ObjC, donc j'ai mis NULL l'essai :
Testing "RObjCC" +--------------+ version() = MyRObjC version 0.0.1 cinData = 1 in "MyObj_myMethod" a = 1 coutData = 0 // ???? ragnagna(1) = 0
id MyObj_myMethod(id obj,int a) { printf("in "%s" a = %dn", __func__, a); return [obj myMethod:a]; }
DONC myMethod n'est pas appellée depuis quand id obj == NULL côté C +-----------------------------------------------------------------+
MAIS MyObj_myMethod est bien appellée cf. : in "MyObj_myMethod" a = 1
si tu vois où ça déconne...
On 15 août, 17:03, l...@honk-honk.com (Luc Heinrich) wrote:
unbewust <yvon.thora...@gmail.com> wrote:
je cherche moins à développer de l'ObjC/Cocoa que de l'ObjC à ajo uter
dans des extensions C pour Ruby.
Je ne vois pas ce qu'un livre sur ObjC, le langage, t'apporterait de
concret sur l'art et la manière d'en incorporer dans une extension Ruby,
ce qui est un cas particulier d'une part, qui se trouve être totalement
trivial d'autre part.
--
Luc Heinrich
bah si c'est trivial alors....
sous les conseils de Bourguignon j'ai fait un petit test que j'arrive
à compiler "à la main" : une première passe sur l'ObjC puis après
j'utilise extconf.rb/mkmf et ça roule.
la première passe en ObjC ne génère pas les liens, si je vérifie (a vec
otool) j'ai les bons symboles.
mais je ne vois pas ce qu'il faut passer comme id obj depuis C à la
méthode ObjC, donc j'ai mis NULL l'essai :
Testing "RObjCC"
+--------------+
version() = MyRObjC version 0.0.1
cinData = 1
in "MyObj_myMethod" a = 1
coutData = 0 // ????
ragnagna(1) = 0
je cherche moins à développer de l'ObjC/Cocoa que de l'ObjC à ajo uter dans des extensions C pour Ruby.
Je ne vois pas ce qu'un livre sur ObjC, le langage, t'apporterait de concret sur l'art et la manière d'en incorporer dans une extension Ruby, ce qui est un cas particulier d'une part, qui se trouve être totalement trivial d'autre part.
-- Luc Heinrich
bah si c'est trivial alors....
sous les conseils de Bourguignon j'ai fait un petit test que j'arrive à compiler "à la main" : une première passe sur l'ObjC puis après j'utilise extconf.rb/mkmf et ça roule.
la première passe en ObjC ne génère pas les liens, si je vérifie (a vec otool) j'ai les bons symboles.
mais je ne vois pas ce qu'il faut passer comme id obj depuis C à la méthode ObjC, donc j'ai mis NULL l'essai :
Testing "RObjCC" +--------------+ version() = MyRObjC version 0.0.1 cinData = 1 in "MyObj_myMethod" a = 1 coutData = 0 // ???? ragnagna(1) = 0
id MyObj_myMethod(id obj,int a) { printf("in "%s" a = %dn", __func__, a); return [obj myMethod:a]; }
DONC myMethod n'est pas appellée depuis quand id obj == NULL côté C +-----------------------------------------------------------------+
MAIS MyObj_myMethod est bien appellée cf. : in "MyObj_myMethod" a = 1
si tu vois où ça déconne...
luc
unbewust wrote:
sous les conseils de Bourguignon j'ai fait un petit test que j'arrive à compiler "à la main" : une première passe sur l'ObjC puis après j'utilise extconf.rb/mkmf et ça roule.
Je vois que tu aimes toujours autant les methodes les plus compliquées possible... :)
mais je ne vois pas ce qu'il faut passer comme id obj depuis C à la méthode ObjC, donc j'ai mis NULL l'essai :
Cet exemple ne montre rien et n'explique rien à ton problème.
Soit tu as des problème de compilation/link de l'extension auquel cas il faut le dire, soit tu as des problème de compréhension de base d'Objective-C auquel cas il faut le dire aussi.
Une méthode d'instance (déclarée avec '-') s'appelle sur une instance allouée et initialisée (alloc+init). Comment veut tu que ta méthode soit appelée si l'instance que tu utilises est NULL ?!?
-- Luc Heinrich
unbewust <yvon.thoraval@gmail.com> wrote:
sous les conseils de Bourguignon j'ai fait un petit test que j'arrive
à compiler "à la main" : une première passe sur l'ObjC puis après
j'utilise extconf.rb/mkmf et ça roule.
Je vois que tu aimes toujours autant les methodes les plus compliquées
possible... :)
mais je ne vois pas ce qu'il faut passer comme id obj depuis C à la
méthode ObjC, donc j'ai mis NULL l'essai :
Cet exemple ne montre rien et n'explique rien à ton problème.
Soit tu as des problème de compilation/link de l'extension auquel cas il
faut le dire, soit tu as des problème de compréhension de base
d'Objective-C auquel cas il faut le dire aussi.
Une méthode d'instance (déclarée avec '-') s'appelle sur une instance
allouée et initialisée (alloc+init). Comment veut tu que ta méthode soit
appelée si l'instance que tu utilises est NULL ?!?
sous les conseils de Bourguignon j'ai fait un petit test que j'arrive à compiler "à la main" : une première passe sur l'ObjC puis après j'utilise extconf.rb/mkmf et ça roule.
Je vois que tu aimes toujours autant les methodes les plus compliquées possible... :)
mais je ne vois pas ce qu'il faut passer comme id obj depuis C à la méthode ObjC, donc j'ai mis NULL l'essai :
Cet exemple ne montre rien et n'explique rien à ton problème.
Soit tu as des problème de compilation/link de l'extension auquel cas il faut le dire, soit tu as des problème de compréhension de base d'Objective-C auquel cas il faut le dire aussi.
Une méthode d'instance (déclarée avec '-') s'appelle sur une instance allouée et initialisée (alloc+init). Comment veut tu que ta méthode soit appelée si l'instance que tu utilises est NULL ?!?
-- Luc Heinrich
unbewust
On 15 août, 20:43, (Luc Heinrich) wrote:
unbewust wrote:
sous les conseils de Bourguignon j'ai fait un petit test que j'arrive à compiler "à la main" : une première passe sur l'ObjC puis apr ès j'utilise extconf.rb/mkmf et ça roule.
Je vois que tu aimes toujours autant les methodes les plus compliquées possible... :)
je ne suis pas parvenu, pour l'instant, à tout faire par extconf, peut-être suffit'il d'ajouter l'option -ObjC ???
en tout cas, pour l'instant je ne suis pas parvenu à compiler des sources .c et .m simultanément, ça devrait-être possible car gcc tient compte de l'extension pour la compilation...
mais je ne vois pas ce qu'il faut passer comme id obj depuis C à la méthode ObjC, donc j'ai mis NULL l'essai :
Cet exemple ne montre rien et n'explique rien à ton problème.
Soit tu as des problème de compilation/link de l'extension auquel cas il faut le dire,
non, le link se passe bien puisque je peux faire un printf à partir d'une méthode ObjC.
soit tu as des problème de compréhension de base d'Objective-C auquel cas il faut le dire aussi.
c'est sûr que mon pb est là...
Une méthode d'instance (déclarée avec '-') s'appelle sur une instan ce allouée et initialisée (alloc+init). Comment veut tu que ta méthode soit appelée si l'instance que tu utilises est NULL ?!?
c'est ce que j'ai compris +/- confusément, comment depuis C créer une instance d'un objet Objc.
ou bien alors c'est la méthode : id MyObj_myMethod(id obj,int a) { printf("in "%s" a = %dn", __func__, a); return [obj myMethod:a];
}
qui est mal écrite, elle devrait elle même s'occuper d'alloc + init du genre (en raccourci :
id MyObj_myMethod( int a) { printf("in "%s" a = %dn", __func__, a); alloc init de obj return [obj myMethod:a];
}
donc + d'objet à passer de C à ObjC, j'utilise "MyObj_myMethod" comme une fonction...
-- Luc Heinrich
On 15 août, 20:43, l...@honk-honk.com (Luc Heinrich) wrote:
unbewust <yvon.thora...@gmail.com> wrote:
sous les conseils de Bourguignon j'ai fait un petit test que j'arrive
à compiler "à la main" : une première passe sur l'ObjC puis apr ès
j'utilise extconf.rb/mkmf et ça roule.
Je vois que tu aimes toujours autant les methodes les plus compliquées
possible... :)
je ne suis pas parvenu, pour l'instant, à tout faire par extconf,
peut-être suffit'il d'ajouter l'option -ObjC ???
en tout cas, pour l'instant je ne suis pas parvenu à compiler des
sources .c et .m simultanément, ça devrait-être possible car gcc tient
compte de l'extension pour la compilation...
mais je ne vois pas ce qu'il faut passer comme id obj depuis C à la
méthode ObjC, donc j'ai mis NULL l'essai :
Cet exemple ne montre rien et n'explique rien à ton problème.
Soit tu as des problème de compilation/link de l'extension auquel cas il
faut le dire,
non, le link se passe bien puisque je peux faire un printf à partir
d'une méthode ObjC.
soit tu as des problème de compréhension de base
d'Objective-C auquel cas il faut le dire aussi.
c'est sûr que mon pb est là...
Une méthode d'instance (déclarée avec '-') s'appelle sur une instan ce
allouée et initialisée (alloc+init). Comment veut tu que ta méthode soit
appelée si l'instance que tu utilises est NULL ?!?
c'est ce que j'ai compris +/- confusément, comment depuis C créer une
instance d'un objet Objc.
ou bien alors c'est la méthode :
id MyObj_myMethod(id obj,int a)
{
printf("in "%s" a = %dn", __func__, a);
return [obj myMethod:a];
}
qui est mal écrite, elle devrait elle même s'occuper d'alloc + init du
genre (en raccourci :
id MyObj_myMethod( int a)
{
printf("in "%s" a = %dn", __func__, a);
alloc init de obj
return [obj myMethod:a];
}
donc + d'objet à passer de C à ObjC, j'utilise "MyObj_myMethod" comme
une fonction...
sous les conseils de Bourguignon j'ai fait un petit test que j'arrive à compiler "à la main" : une première passe sur l'ObjC puis apr ès j'utilise extconf.rb/mkmf et ça roule.
Je vois que tu aimes toujours autant les methodes les plus compliquées possible... :)
je ne suis pas parvenu, pour l'instant, à tout faire par extconf, peut-être suffit'il d'ajouter l'option -ObjC ???
en tout cas, pour l'instant je ne suis pas parvenu à compiler des sources .c et .m simultanément, ça devrait-être possible car gcc tient compte de l'extension pour la compilation...
mais je ne vois pas ce qu'il faut passer comme id obj depuis C à la méthode ObjC, donc j'ai mis NULL l'essai :
Cet exemple ne montre rien et n'explique rien à ton problème.
Soit tu as des problème de compilation/link de l'extension auquel cas il faut le dire,
non, le link se passe bien puisque je peux faire un printf à partir d'une méthode ObjC.
soit tu as des problème de compréhension de base d'Objective-C auquel cas il faut le dire aussi.
c'est sûr que mon pb est là...
Une méthode d'instance (déclarée avec '-') s'appelle sur une instan ce allouée et initialisée (alloc+init). Comment veut tu que ta méthode soit appelée si l'instance que tu utilises est NULL ?!?
c'est ce que j'ai compris +/- confusément, comment depuis C créer une instance d'un objet Objc.
ou bien alors c'est la méthode : id MyObj_myMethod(id obj,int a) { printf("in "%s" a = %dn", __func__, a); return [obj myMethod:a];
}
qui est mal écrite, elle devrait elle même s'occuper d'alloc + init du genre (en raccourci :
id MyObj_myMethod( int a) { printf("in "%s" a = %dn", __func__, a); alloc init de obj return [obj myMethod:a];
}
donc + d'objet à passer de C à ObjC, j'utilise "MyObj_myMethod" comme une fonction...
-- Luc Heinrich
unbewust
On 15 août, 20:43, (Luc Heinrich) wrote:
bon voila ce que j'ai fait et qui roule en une seule passe de compil :
MyRObCj.c : ( la *pseudo* C ext to Ruby using ObjC ) +---------+ #include <stdio.h> #include <string.h> #include "ruby.h"
VALUE cMyRObjC;
/* * Returns the version of this module */ VALUE m_roc_version ( VALUE self ) { char *version = "MyRObjC version 0.0.1"; return rb_str_new2 ( version ); }
/* * Returns inData + 1 */ VALUE m_a_plus_un ( VALUE self, VALUE inData ) { int cinData = FIX2INT ( inData ); int coutData = MyObj_myMethod ( cinData ); return INT2FIX ( coutData ); }
MyRObCj.c : ( la *pseudo* C ext to Ruby using ObjC )
+---------+
#include <stdio.h>
#include <string.h>
#include "ruby.h"
VALUE cMyRObjC;
/*
* Returns the version of this module
*/
VALUE m_roc_version ( VALUE self )
{
char *version = "MyRObjC version 0.0.1";
return rb_str_new2 ( version );
}
/*
* Returns inData + 1
*/
VALUE m_a_plus_un ( VALUE self, VALUE inData )
{
int cinData = FIX2INT ( inData );
int coutData = MyObj_myMethod ( cinData );
return INT2FIX ( coutData );
}
MyRObCj.c : ( la *pseudo* C ext to Ruby using ObjC ) +---------+ #include <stdio.h> #include <string.h> #include "ruby.h"
VALUE cMyRObjC;
/* * Returns the version of this module */ VALUE m_roc_version ( VALUE self ) { char *version = "MyRObjC version 0.0.1"; return rb_str_new2 ( version ); }
/* * Returns inData + 1 */ VALUE m_a_plus_un ( VALUE self, VALUE inData ) { int cinData = FIX2INT ( inData ); int coutData = MyObj_myMethod ( cinData ); return INT2FIX ( coutData ); }