Короче, кто умный- посмотрит код метатрейдера и напишет генератор рандомных
(можно, кстати, и не рандомных) строк заданной длины под буфера для работы с API! :-)
Чего тут умничать? Я с этими эффектами столкнулся при связи с DLL, так что сделал совершенно тупо:
// Этот маразм обязательно делать только в месте вызова и именно так!
#define MISC_DLL_STRING "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234"
Умничать придется :-(.
.
Уважаемый, все проблемы в данном случае начинаются в момент, когда
в Dll нужно обратиться с *несколькими* буферами.
Так вот эти несколько буферов должны инициализироваться разными строками.
Иначе будет нехорошо.
И даже если Вы напишите
jartmailru>>:
Умничать придется :-(.
.
Уважаемый, все проблемы в данном случае начинаются в момент, когда
в Dll нужно обратиться с *несколькими* буферами.
Хм... Надо проверить, хотя я так пологал, что #define работает как сишный пропроцессор, а компилятор не настолько умный, чтобы строки объединять... М.б. и ошибся - зада таких у меня не стояло.
Сильно сомневаюсь. {...}
А Вы проверьте. Распечатайте содержимое переменных temp после инициализации.
Сильно сомневаюсь. А как же тогда строки в длл передавать?
Принял указатель, подменил значения, и вся оптимизация посыпалась нахрен, ибо хак, так получается?
Вот и я долго понять не мог, где в трех соснах мог заблудится. (((
Короче, кто умный- посмотрит код метатрейдера и напишет генератор рандомных
(можно, кстати, и не рандомных) строк заданной длины под буфера для работы с API! :-)
Чего тут умничать? Я с этими эффектами столкнулся при связи с DLL, так что сделал совершенно тупо:
:)
.
Уважаемый, все проблемы в данном случае начинаются в момент, когда
в Dll нужно обратиться с *несколькими* буферами.
Так вот эти несколько буферов должны инициализироваться разными строками.
Иначе будет нехорошо.
И даже если Вы напишите
то это никаким образом не исправит положения.
А пример с передачей в Dll измененных строк- как я писал- не работает.
.
А строчечку, ИМХО, Вы сюда зря такую длинную запостили.
Умничать придется :-(.
.
Уважаемый, все проблемы в данном случае начинаются в момент, когда
в Dll нужно обратиться с *несколькими* буферами.
А строчечку, ИМХО, Вы сюда зря такую длинную запостили.
Да, ступил. :(
А Вы проверьте. Распечатайте содержимое переменных temp после инициализации.
Проверил, убедился. Ппц.
Итого -- изменять строки во внешних модулях -- опасно, всегда есть мизерный, но шанс нарваться на такие неприятности. Спасибо, буду иметь в виду.
Кстати, не вижу смысла в этой оптимизации, совсем.
Проверил, убедился. Ппц.
Итого -- изменять строки во внешних модулях -- опасно, всегда есть мизерный, но шанс нарваться на такие неприятности. Спасибо, буду иметь в виду.
Кстати, не вижу смысла в этой оптимизации, совсем.
:-)
Я тоже смысла не вижу. Экономия 200 байт в бинарнике- это выигрыш крайне сомнительный.