И в результате пример от Mario для получение содержимого буфера выводит именно тот текст, который я занес. Осталось ток разобраться как его правильно забрать оттуда.
Пока писал ответ, придумал вариан решения. Но все равно, dd Filter.end - Filter.1 - определяет размер скажем так массива с нужными расширениями файлов, для пустого фильтра можно в принципе указать 0, но хочется всеже более универсальное решение. Тут скорее всего необходимо задействовать указатели, вот как с ними работать я еще плохо понимаю.
Боюсь сам, я всетаки не одолею сего демона (OpenDialog). Заголовочный файл теоретически правильный, Скорее всего я делаю что-то не так либо при заполнении структуры, либо неправильно понял как вызывать инициализацию opendialog'а, так как именно после добавления строки инициализации компонента программа вылетает. Архив с программой и хедером прилагаю.
Если ты хочешь протестировать отдельно взятый функционал, лучше для этого взять программу cmm/example.
В твоём примере черт ногу сломит: в ней намешан и буфер обмена, и OpenDialog, и даже boxlib от предыдущего примера.
Ты всё делал правильно, но запутался и если удалить всё лишнее, ответ может быть найден сам собой. После расчистки так и случилось. Вначале нужно установить переменные, а потом уже инициализировать OpenDialog. Всё что я сделал, это перенёс строку proc_lib_opendialog_init stdcall (#twst); ниже по коду.
Leency wrote:Если ты хочешь протестировать отдельно взятый функционал, лучше для этого взять программу cmm/example.
В твоём примере черт ногу сломит: в ней намешан и буфер обмена, и OpenDialog, и даже boxlib от предыдущего примера.
Ты всё делал правильно, но запутался и если удалить всё лишнее, ответ может быть найден сам собой. После расчистки так и случилось. Вначале нужно установить переменные, а потом уже инициализировать OpenDialog. Всё что я сделал, это перенёс строку proc_lib_opendialog_init stdcall (#twst); ниже по коду.
Пора бы мне уже прекращать такие тупые ошибки делать. Спасибо. А про использование для этих целей cmm/example как-то и не подумал.
> Каким образом в С-- можно получить данные определенного размера с определенной позиции?
strncpy(in_buf, from_buf + смещение_на_определённую позицию, размер_копируемых_данных);