Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: Abs62
Дата сообщения: 21.01.2012 19:20
V0lt
Привести DWORD к LARGE_INTEGER*, а потом разыменовать указатель? Боюсь, это даст не вполне ожидаемый результат.
Автор: V0lt
Дата сообщения: 21.01.2012 19:26
Abs62
Мне нужно вторым параметром задавать целые числа. Но просто так не получается, функция хочет PLARGE_INTEGER.
Автор: Abs62
Дата сообщения: 21.01.2012 19:55
V0lt
Значит, надо сделать LARGE_INTEGER. Так просто привести не получится, это структура.
Автор: V0lt
Дата сообщения: 21.01.2012 20:16

Цитата:
Так просто привести не получится, это структура.

В описании говорится, что LARGE_INTEGER можно рассматривать как струтуру (DWORD+LONG) либо как целое (LONGLONG).
Т.е. значения LowPart и HighPart хранятся там же где и QuadPart. Или я чего-то не допонимаю.

Еще вопрос
Код: LARGE_INTEGER offset;
offset.QuadPart = 0;
SetFilePointerEx(hFile, offset, &offset, FILE_CURRENT);
Автор: Abs62
Дата сообщения: 21.01.2012 20:42
V0lt

Цитата:
В описании говорится, что LARGE_INTEGER можно рассматривать как струтуру (DWORD+LONG) либо как целое (LONGLONG).

Не говорится там такого. Там говорится о том, что это union. union нельзя рассматривать как целое, это такой специфический вид структуры, все поля которой находятся по одному адресу.

Цитата:
Т.е. значения LowPart и HighPart хранятся там же где и QuadPart.

Вот это верно.

Цитата:
Такой код корректен?

Если компилятор поддерживает 64-разрядные целые, то да. Как уверяет Microsoft.
Автор: V0lt
Дата сообщения: 21.01.2012 21:43
Abs62
Цитата:
Там говорится о том, что это union. union нельзя рассматривать как целое, это такой специфический вид структуры, все поля которой находятся по одному адресу.

Хоть мне это не нравиться , но спасибо за объяснение.


Цитата:
Если компилятор поддерживает 64-разрядные целые, то да. Как уверяет Microsoft.

Я о другом, SetFilePointerEx(hFile, offset, &offset, FILE_CURRENT). Логика подсказывает, что должно работать.
Автор: Abs62
Дата сообщения: 21.01.2012 21:59
V0lt

Цитата:
Я о другом, SetFilePointerEx(hFile, offset, &offset, FILE_CURRENT). Логика подсказывает, что должно работать.

Ну да. Параметр liDistanceToMove передаётся по значению. То бишь передаётся копия offset. А копия offset и текущее значение offset - это две разные, не зависящие друг от друга переменные. Так что никакого криминала тут нет.
Автор: gefixRu
Дата сообщения: 25.01.2012 19:02
я похоже не шибко опытный в таких вопросах.
в общем, у меня есть в одном из методов такая строка:
String ^command = "http://" + this->url + "scripts/external.connect.php?userlogin=" + this->login + "&userpsw=" + this->password + "&usercookie=" + this->usercookie;

1) дело в том, что в некоторых случаях вызова метода с этой строкой конкатенация строк происходит до последней переменной экземпляра класса. то есть в данном случае получается command == "http://" + this->url и все.

2) если вызвать метод из того места, где конкатенация строк проходит нормально, а потом из того места, где неправильно как я написал уже, то и во втором случае уже все работает как надо

что я делаю не так?
Автор: V0lt
Дата сообщения: 28.01.2012 18:32
Мне нужен целый тип на 128 бит. Есть __int128, но его не получается использовать (VS 2010, x86).
Что посоветуете?
Автор: alexeybar2008
Дата сообщения: 30.01.2012 15:10
посоветуйте как в Си (консольное приложение С собираю в VS2008) объявить динамический массив, каждая ячейка которого это 6 байт .

Он должен инициализироваться и в ходе выполнения в конец могут добавляться элементы.


На код:
byte_t (*defaultKeys)[6] = {
        {0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};

ругается:error C2078: слишком много инициализаторов

Или может как-то можно byte_t[6] объявить как отдельный тип (mykey) и
записать mykey *defaultKeys; ???
Автор: akaGM
Дата сообщения: 30.01.2012 15:34
alexeybar2008
так в чём его динамичность?


Цитата:
в ходе выполнения в конец могут добавляться элементы
так значит больше 6?

попробуй так:

typedef byte_t bytes6[6];
bytes6 * defaultKeys;

defaultKeys -- указатель на 6-ти байтовую последовательность, с ним можно выделять память, а defaultKeys[0], defaultKeys[100] -- адресация этих 6-байтовых кусков
Автор: Eks1987
Дата сообщения: 30.01.2012 16:00
Добрый День всем, нужна помощь, собсно есть 2 файла которые нужно поместить в определенную папку на диске Ц и 1-н из файлов нужно запустить, после того как он скопируется в нужную дерикториюи все это в 1-н клик по **.bat
Автор: blaro
Дата сообщения: 30.01.2012 16:35
Скажите пожалуйста, где можно найти исходный код игры Game of Life скомпилить ее и поиграть. Мне под линукс надо.
Автор: akaGM
Дата сообщения: 30.01.2012 16:43
Eks1987
а причём здесь Си?

Код: copy file1.ext c:\directory\path
copy file2.exe c:\directory\path
c:
cd \directory\path
file2.exe
Автор: Eks1987
Дата сообщения: 30.01.2012 16:45
Crazy_Shrike
Я только начинаю, так что сильно не ругаться, использую Microsoft Visual C++ 2008 или C++ Builder задача вот в чем, есть несколько файлов, которые при отправке получатель сохранит его на рабочий стол, 1-н файл должен замениться в папке "C:/papka/papka и 1-н файл находящиейся в этой папке под название config.cmd запуститься после распаковки 1-го и все это в 1-н клик, что бы пользователи не задавали глупых вопросов, что и где и как поменять.
Автор: akaGM
Дата сообщения: 30.01.2012 16:52
blaro

в гугле или sourceforge не пробовал?
Автор: Eks1987
Дата сообщения: 30.01.2012 17:01
akaGM
благодарю, но так слишком просто )
Автор: akaGM
Дата сообщения: 30.01.2012 17:14
Eks1987

за сложностями сюда:

http://forum.ru-board.com/topic.cgi?forum=62&topic=23213#1
Автор: alexeybar2008
Дата сообщения: 30.01.2012 17:14
akaGM все правильно: Ключ имеет размер 6 байт. defaultKeys - это массив ключей.
typedef byte_t mfKey[6];

mfKey * defaultKeys = {
        {0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
        {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};

При инициализации вылетает ошибка error C2078: слишком много инициализаторов. Что я не так делаю?
Автор: akaGM
Дата сообщения: 30.01.2012 17:24
alexeybar2008

Цитата:
Что я не так делаю?
неправильно инициализируешь указатель

в твоём случае инициализация возможна только двумя способами:

1) mfKey * defaultKeys = NULL;

2) и адресом какой-нибудь константы или переменной соответствующего типа:

mfKey Keys[2] = {{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}};
mfKey * defaultKeys = (mfKey *)&Keys;

только во втором случае при любой операции по выделению/распределению памяти для defaultKeys ты теряешь начальную инициализацию...
Автор: alexeybar2008
Дата сообщения: 30.01.2012 18:09
Спасибо
Автор: GeMir
Дата сообщения: 30.01.2012 23:55
Никому не попадались случаем имплементации CORDIC-вычислений функций arcsinh и arccosh?

Так же был бы признателен за ссылки на объяснение этого метода "на пальцах".
Автор: akaGM
Дата сообщения: 31.01.2012 00:41
GeMir
тебе именно CORDIC-реализация нужна или просто любая?

вот скан советской книги, но там только простая тригонометрия и арки, но метод описан:
http://baykov.de/Cordic1975.htm
http://www.umup.narod.ru/1115.zip //книга целиком
Автор: GeMir
Дата сообщения: 31.01.2012 00:46
akaGM
Да, именно CORDIC нужен, спасибо за ссылки. В общем-то достаточно натурального логарифма.
Вторая из предложенных ссылок - битая?
Автор: akaGM
Дата сообщения: 31.01.2012 12:02
тогда увы, ссылка 2010 года:

Цитата:
А здесь: http://www.umup.narod.ru/1115.zip
книга "Аппаратурная реализация элементарных функций в ЦВМ"
представлена полностью (в формате djvu)


Успехов!
В.Д.Байков


попробуй ещё его ссылки:
http://baykov.de/cordic1975.htm
http://baykov.de/cordic1972.htm
http://baykov.de/cordic1985.htm
http://bookfi.org/book/409463
Автор: karakurt2
Дата сообщения: 31.01.2012 16:57
GeMir
У Дэвида Эберли всё есть
Автор: GeMir
Дата сообщения: 31.01.2012 17:16
akaGM
karakurt2
Спасибо! Только про "Ход мамонтом" не понял
Автор: akaGM
Дата сообщения: 31.01.2012 18:07
GeMir

:)
я тоже...

извини, это не я...
Автор: terminat0r
Дата сообщения: 31.01.2012 18:57
GeMir
Байков Аппаратурная реализация элементарных функций в ЦВМ
есть на http://free-books.us.to
Автор: akaGM
Дата сообщения: 31.01.2012 21:32
GeMir

официальная отмазка:
http://ru.wikipedia.org/wiki/CORDIC
литература
Байков В. Д., Селютин С. А., Вычисление элементарных функций в ЭКВМ, Москва, Радио и связь, 1982, 64 стр.

можешь кликнуть :)

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.