- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
void SoundService::stop(){
if (mOutputMixObj != NULL) {
(*mOutputMixObj)->Destroy(mOutputMixObj);
mOutputMixObj = NULL;
}
if(mEngineObj != NULL){
(*mEngineObj)->Destroy(mEngineObj);
mEngineObj = NULL; mEngine = NULL;
}
}
Анонимус 30.10.2014 23:38 # −1
И если нет, то кидает exception: дескать по-контракту сюда только this.
roman-kashitsyn 30.10.2014 23:43 # −1
Анонимус 30.10.2014 23:48 # −2
Хотя стойте! Мы же говорим про андроид. Там и в SDK-то сплошной int в качестве аргумента, ручной каст и полное отсутствие генериков. Очевидно что плюсовикам повезло еще меньше.
А JNI так сделан чтоб на чистых сях писалось лучше, имхо.
bormand 31.10.2014 06:33 # −2
Да просто у крестов нету вменяемого ABI.
Из-за этого, порой, доходит вообще до маразма - авторы либ очкуют юзать STL контейнеры из-за того, что кому-то может захотеться подгрузить джве DLL'ки, собранные разными компилерами...
Dummy00001 31.10.2014 14:21 # +2
конечно есть - на линухах и прочих *нихах и бсдях. (кланг недавно последнии грабли пофиксил и теперь вроде даже можно мешать объектные файлы от гцц и кланга в одном проекте. мешать можно было и раньше, но были где-то там какие-то глюки.)
но не на ваших грёбаных виндах, где мелкософт все меняет постоянно с каждым релизом виндов/студии. эти идиоды даже msvcrt стабильной сделать не могут. а вы тут о крестовом ABI мечтаете...
Xom94ok 31.10.2014 20:53 # +1
> о крестовом ABI мечтаете...
Если вдруг кто-то не следит, то Саттер полгода назад написал n4028.tl;d: я, собственно, тоже не читал, а если и читал, то нихуя не понял. Там что-то про портабельный extern "abi" и std::abi::*.
Dummy00001 31.10.2014 22:35 # 0
да то что там саттер предлагает просто никогда не полетит. он предлагает более или менее продублировать STL, для чего и предлагает отдельный неймспэйс std::abi::*. грабли двух слегка разных типов контейнеров - теперь прям из коробки.
но все это ломается на том что ОСь - the OS Platform Owner - что-то еще должна делать. т.к. эта проблема существует преимущественно на виндах, и мелкософт уже давно всех с крестов на фальшивое до пересадил, то им скрее всего глубоко до лампочки. (тем более что версионирование виндов/студий/рантаймов просто через Ж, то это вполне вероятно на виндах вообще не реализуемо.)
учитывая сколько он там пользуется словом "strawman", я думаю что саттер знал что это не реально, но он просто хотел хотя бы описать теоретическое - и технически реализуемое - решение проблемы.
но занимательно чтиво, тем не менее.
3.14159265 02.11.2014 21:01 # −1
guest 02.11.2014 21:55 # −2
roman-kashitsyn 31.10.2014 09:44 # −1
В JNI есть пара ифдефов, которые добавляют методы, типа такого Про андроид не скажу, может и там есть, но автор не знал.
guest 02.11.2014 21:55 # 0
TarasB 02.11.2014 22:44 # +4
guest 03.11.2014 00:19 # 0