Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2011, 15:50   #11
MaratZahidyl
Пользователь
 
Аватар для MaratZahidyl
 
Регистрация: 18.08.2011
Сообщений: 70
По умолчанию

Есть еще одна проблемка

Подключаешь боблиотеки и зоголовочные файлы, создаешь главный указатель а компилятор ругается :

c:\di\di.cpp(38) : error C2146: syntax error : missing ';' before identifier 'pInput'
c:\di\di.cpp(38) : error C2501: 'LPDIRECTINPUT8' : missing storage-class or type specifiers
c:\di\di.cpp(38) : fatal error C1004: unexpected end of file found

Подключается dinput.h из DirectX
Слышал версию что это конфликт с dinput.h из библиотеки Vis. syudio.

Может кто знает как тут поступить?
MaratZahidyl вне форума Ответить с цитированием
Старый 06.09.2011, 15:59   #12
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
причем тут размер в байтах?
при том, что int (32 бит) гарантированно теряет несколько бит при записи во float (у которого тоже 32 бит). А при записи в double не теряет.

> вещественные числа иначе хранятся, потому обычный (int 32 бита который) вполне влазит.

Вопрос не в том, влезет или нет, а в том, сколько потеряет.
Исходный посыл был:

Цитата:
при преобразовании из int во float никакая информация не теряется
так вот, это в общем случае это не так.

> а вообще лучше обычно double

о чём и речь ) Но в него не влезет (без потери точности) int64. Так что ещё лучше Extended (80 бит, не помню, как на С этот тип называется).
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 06.09.2011, 16:14   #13
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
при том, что int (32 бит) гарантированно теряет несколько бит при записи во float (у которого тоже 32 бит)
ЧЗН?

Не могли бы вы в кратце изложить как по вашему происходит преобразование int >> float.
f.hump вне форума Ответить с цитированием
Старый 06.09.2011, 16:31   #14
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Если кратко, то примерно так:

PHP код:

int 
(32)       float (32)
0x7FFFFFFF     0x4F000000
0x7FFFFFFE     0x4F000000
0x7FFFFFFD     0x4F000000
...
0x7FFFFFC1     0x4F000000
0x7FFFFFC0     0x4EFFFFFF
0x7FFFFFBF     0x4EFFFFFF
..
0x7FFFFF41     0x4EFFFFFF
0x7FFFFF40     0x4EFFFFFE
0x7FFFFF7F     0x4EFFFFFE
... 
Легко видеть, что последние 4-5 бит у int теряются.
Собственно, что тут удивительного, я не знаю, стандарту тыщу лет, вся инфа доступна.

Update: Естественно, для небольших значений int (меньше 0х07FFFFFF по модулю), потерь не будет.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 06.09.2011 в 16:38.
veniside вне форума Ответить с цитированием
Старый 06.09.2011, 16:51   #15
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Слышал версию что это конфликт с dinput.h из библиотеки Vis. syudio.
Бред. Приведите минимальный код с этой ошибкой.
p51x вне форума Ответить с цитированием
Старый 06.09.2011, 17:31   #16
MaratZahidyl
Пользователь
 
Аватар для MaratZahidyl
 
Регистрация: 18.08.2011
Сообщений: 70
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Бред. Приведите минимальный код с этой ошибкой.
#include "dinput.h "

LPDIRECTINPUT8 pInput;
MaratZahidyl вне форума Ответить с цитированием
Старый 06.09.2011, 19:18   #17
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
1>------ Build started: Project: testDInput, Configuration: Debug Win32 ------
1> main.cpp
1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\dinput.h : DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800
1> testDInput.vcxproj -> C:\D\projects\c++\testDInput\Debug\ testDInput.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Правда у меня не экспресс версия... хотя не дума, что проблема в этом.
p51x вне форума Ответить с цитированием
Старый 06.09.2011, 19:39   #18
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Цитата:
Сообщение от MaratZahidyl Посмотреть сообщение
#include "dinput.h "

LPDIRECTINPUT8 pInput;
тут нет фукнции мейн.

это дайрект икс чтоль?
вы библиотеки то в настройках подключили?
onewho вне форума Ответить с цитированием
Старый 06.09.2011, 19:50   #19
MaratZahidyl
Пользователь
 
Аватар для MaratZahidyl
 
Регистрация: 18.08.2011
Сообщений: 70
По умолчанию

Цитата:
Сообщение от onewho Посмотреть сообщение
тут нет фукнции мейн.

это дайрект икс чтоль?
вы библиотеки то в настройках подключили?
да DirectX9
конечно подключил. С директ3д уже месяца 4 работаю и никаких проблем, а инпут там же все аналогично директ3д, и к томуже подключаю пишу как в учебниках
MaratZahidyl вне форума Ответить с цитированием
Старый 07.09.2011, 16:22   #20
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

может попробывать пробел убрать между h и "?
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему у моего друга не работает програма скомпилированная в Microsoft Visual C++ 2005 Express Edition ? pufystyj Visual C++ 16 09.02.2011 20:50
Преобразование типов jungle Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 04.12.2010 19:41
скрит работает в interbase а в FireBird выдает ошибку NikK1 БД в Delphi 9 13.04.2010 18:07
Выдает ошибку но работает.Что не так? Студло Помощь студентам 1 01.03.2010 09:12
Немогу понять,почему Microsoft Visual Studio 2005 (C++) выдает ошибки? FanEurovision Visual C++ 3 18.05.2009 20:06