| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Variant (const unsigned __int64) |
| Автор: np9mi7 10.10.2005, 10:39 | ||||
| Добрый день. Есть код:
При попытке скомпилировать:
При просмотре исходников VCL не нашел конструктора от unsigned __int64. Как с этим бороться? Как передать хранимой процедуре unsigned __int64? Заранее благодарен за ответы. |
| Автор: _hunter 10.10.2005, 11:23 |
| так и передавай ( как компилятор предлагает ): Variant vValue ((char*)ullValue); |
| Автор: np9mi7 10.10.2005, 11:59 | ||
|
| Автор: szz 10.10.2005, 12:29 |
| А ты в Variant никогда не сохранишь 64-битные целые - забудь об этом. В Variant для int используется системной ширины целое, которое как правило 32 бита. Напиши сам свой Variant - это не должно быть сложно. |
| Автор: _hunter 10.10.2005, 12:38 | ||
логично -- если нули встречаются... тогда смотрим на конструкторы для массивов: Variant(const int* bounds, const int boundsSize, Word varType); соответственно: Variant MyVariant(OPENARRAY(int, (0, 8)), varInteger); for ( int i = 0; i < 9; i++ ) MyVariant.PutElement(((char*)&number)[i], i); ( возможно нужно будет развернуть массив ) |
| Автор: np9mi7 10.10.2005, 21:41 |
| _hunter, в итоге байтами и обошелся.... |
| Автор: np9mi7 24.1.2006, 16:14 | ||
И никаких байт не нужно; |