Разделение двух переменных поплавок в C ++, кажется, возвращается ноль, и я не могу понять, почемуC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Разделение двух переменных поплавок в C ++, кажется, возвращается ноль, и я не могу понять, почему

Сообщение Anonymous »

В настоящее время я пытаюсь написать программу C ++, которая будет использоваться в качестве .dll с кодом Unity C#. До сих пор я успешно смог получить Unity передавать данные в .dll и наоборот. Тем не менее, я все еще довольно новичок в C ++ и наткнулся на все, и недавно стал проблемой, которую я не могу решить. Это стало немного сложнее из -за того, что я еще не понял отличное решение отладки.

Код: Выделить всё

 virtual float* GetNextSample(double timeAdvance) override{

currentSamplePosition = std::floor(currentPosition);
float centerSample = sampleData.waveform[currentSamplePosition];

for (int i = 0; i < channels; i++) {
currentSample[i] = centerSample;
}

currentPosition += sampleData.positionRate * (frequency / sampleData.rootFrequency);
while (currentPosition >= sampleData.loopEnd) {
currentPosition -= (sampleData.loopEnd - sampleData.loopStart);
}

return currentSample;
}`
Общая проблема, по -видимому, заключается в том, что CurrentPostion не продвигается, таким образом, то Currentsample [] просто заполняется любыми данными на smpledata.waveform [0] .
Я отладко откладывал, изменяя линейные токи. и регистрация этих значений в редакторе Unity, так как Currentsample [] возвращается обратно в Unity и используется для заполнения аудио буфера. Например, для определения значений частоты и smpledata.rootfrequency , я устанавливаю токи выборки к этим значениям.
Таким образом, с указанным, я имею подтверждение, что частота = 440 и smpledata.rootfrecrentency = ~ 329.63. Эти переменные являются поплавками. Тем не менее, я обнаружил, что отладки, так это то, что если я устанавливаю образец Currents = (частота / sampledata.rootfrequency); < / code> или даже токи выборки = (static_cast (частота) / static_cast (sampledata.rootfrequence)); < / code>, возвращаемое в UNITY All All. Это разделение должно привести к приблизительно 1,3348, а не к нулю! Поскольку я подтвердил, что две переменные установлены должным образом, что они являются поплавками, и что другие значения возвращаются в единство, как и ожидалось, я понятия не имею, в чем еще проблема может быть на этом этапе. У кого-нибудь есть какие-либо советы?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -i-cant-fi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»