2010-11-18 18 views
3

Başka platformlarda C++ 'dan bir iPhone oyunum var. Böylece kullanıcı arabirimi Obj-C'de kodlanmıştır, ancak programın çekirdek mantığı birkaç C++ dosyasındadır. Bu C++ dosyalarından bazıları, en baştaki başlatıcılarla birlikte çok sayıda global değişkene sahiptir.C++ ile statik başlatılması Objective-C ile karıştırılmış

Sürpriz! Hata ayıklama, başlatma işleminin hiçbir zaman gerçekleşmediğini gösterir. Obj-C bağlantısı C++ statik başlatma zincirini çağırmayı bilmiyormuş gibi. Bunun için bir düzeltme yapan var mı? Bu başlatma rutini el ile aranmaya zorlamak için bir yol? Küresel değişkenle

Ken

+2

sen yani .mm' 'için tüm' .m' kaynak dosyaları yeniden adlandırma, ++ Obj C dönüştürme denediniz:

de bu siteye göz atın? –

+0

Dang, Ada'nın yaptığı gibi, C++ programının başlatıcılarını dış koddan çağırmak için standart bir yolu olmadığını söylüyor. Bu konuda, C++ utanış sırasını kontrol etmek için standart bir yol veya Ada'nın yaptığı gibi başlatma ile ilgili başka bir şey yoktur. –

+0

@ T.E.D: Aslında başlatma sırasını C++ (global s) için bile iyi tanımlanmış. Ayrılmaya çalıştığınız sorun, derleme birimlerinde başlatma sırasının sırasıdır, ancak bu, farklı derleme birimlerindeki küresellerin birbirleriyle konuşmaması gerektiği bir sorun olmamalıdır (tasarım problemi bir dil sorunu değildir). Ada'nın dilin popülerliğiyle her şeyi doğru bir şekilde aldığını görebiliyoruz: -p –

cevap

İlgili konular