|
|
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
Имеется структура Код: plaintext 1. 2. 3. 4. требуется передать в unsigned char* значение ID[0]. Пробовал, мой "код" при компиляции не ругается, но вот при передаче вылетает ошибка. Как это правильно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 16:14 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
sax_Пробовал, мой "код" при компиляции не ругается, но вот при передаче вылетает ошибка. Как это правильно сделать?Так и показал бы свой код. Но должно сгодиться (unsigned char*)ID[0], при неявном предположении, что длина адреса равна 4 байтам. И куда передаем, в какой ОС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 16:29 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
pandrew sax_Пробовал, мой "код" при компиляции не ругается, но вот при передаче вылетает ошибка. Как это правильно сделать?Так и показал бы свой код. Но должно сгодиться (unsigned char*)ID[0], при неявном предположении, что длина адреса равна 4 байтам. И куда передаем, в какой ОС? Передаем из одной DLL в другую. WinXP. Тоже самое было и у меня! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 16:32 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
sax_ pandrew sax_Пробовал, мой "код" при компиляции не ругается, но вот при передаче вылетает ошибка. Как это правильно сделать?Так и показал бы свой код. Но должно сгодиться (unsigned char*)ID[0], при неявном предположении, что длина адреса равна 4 байтам. И куда передаем, в какой ОС? Передаем из одной DLL в другую. WinXP. Тоже самое было и у меня! Скорее всего что-то напутал в своем коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 16:48 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
Функция DLL Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 16:51 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
ID [0] - это по логике должен быть символ или указатель на символ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 16:52 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
HryuckinnenID [0] - это по логике должен быть символ или указатель на символ? Это должен быть массив символов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:02 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
sax_ HryuckinnenID [0] - это по логике должен быть символ или указатель на символ? Это должен быть массив символов Точнее строкой DWORD, там где-то 10 символов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:03 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
Ошибку выдает на int stat = getID(ID); Ошибка: Assecc violation по такому-то адресу в модуле CC3260MT.dll ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:07 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
Тогда я бы передал (unsigned char*) &CID.ID [0] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:07 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
А то у тебя выходит, что ты значение ID [0] пытаешься представить как указатель: (unsigned char*)CID.ID[0], что не есть правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:09 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:11 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
sax_Ошибка: Assecc violation по такому-то адресу в модуле CC3260MT.dll И, небось, попытка обращения к памяти по твоему id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:14 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
HryuckinnenТогда я бы передал (unsigned char*) &CID.ID [0] Прокатило! Ошибки нет, только вот пока выдает не то, что надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:16 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
Надо полностью код смотреть и тот, что кладет данные в структуру, и тот, что читает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:25 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
Учит, что unsigned char - это есть BYTE, так что strcpy напихает тебе по 4 символа в каждый DWORD. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:30 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
HryuckinnenНадо полностью код смотреть и тот, что кладет данные в структуру, и тот, что читает Я полностью выложил, то что у меня было. А того "куска", что кладет именно в CID у меня нет. Это dll разработана не мною. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:31 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
HryuckinnenУчит, что unsigned char - это есть BYTE, так что strcpy напихает тебе по 4 символа в каждый DWORD. Сейчас я немного запутался, но в ID[0] должно быть пятизначное число, которое может быть отрицательным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:32 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
У тебя по существу массив из 5 двойных слов (CID), который ты передаешь strcpy в качестве источника, чтобы она скопировала его содержимое в ID. Поставь брейкпойнт на строку с вызовом strcpy () и посмотри в отладчике, что реально в этом массиве находится. Не знаю, что ты имеешь в виду под "пятизначным числом". Пятизначное число в бинарном представлении вполне может содержаться в ID [0], даже и отрицательное. Но тогда зачем передавать его с помощью функции копирования строк? А пятизначное число в символьном представлении ("-12345") в DWORD не понестится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:40 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
HryuckinnenТогда я бы передал (unsigned char*) &CID.ID [0] Функция копирования строк прекратит работать при встрече нулевого байта. Во первых он может быть слишком рано, до завершения интересуемых байт, во вторых он может быть слишком далеко, после выхода за границу допустимой области памяти. В первом случае данные будут не достоверные, во втором или не достоверные или будет акссес виолейшен. Это по поводу потери данных. По смыслу записи - не вижу смысла приобразовывать данные для того чтобы их передать на верх с последующей конвертацией в строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:52 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
И я о том же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:54 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
Akh HryuckinnenТогда я бы передал (unsigned char*) &CID.ID [0] Функция копирования строк прекратит работать при встрече нулевого байта. Во первых он может быть слишком рано, до завершения интересуемых байт, во вторых он может быть слишком далеко, после выхода за границу допустимой области памяти. В первом случае данные будут не достоверные, во втором или не достоверные или будет акссес виолейшен. Это по поводу потери данных. По смыслу записи - не вижу смысла приобразовывать данные для того чтобы их передать на верх с последующей конвертацией в строку. Спасибо всем. Вот так работает Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:55 |
|
||
|
DWORD to unsigned char*
|
|||
|---|---|---|---|
|
#18+
sax_ HryuckinnenУчит, что unsigned char - это есть BYTE, так что strcpy напихает тебе по 4 символа в каждый DWORD. Сейчас я немного запутался, но в ID[0] должно быть пятизначное число, которое может быть отрицательным То что я тебе раньше предложил - это конвертация в строку в самой функции. Ты же можешь пойти и другим путем, передать наверх число, а там его сконвертировать. Пятизначное число в десятичной системе исчесления имеет отношение к информатике по тольку по скольку, ибо числа представляются в двоичной системе исчесления. Раз у тебя пятизначное число, то максимальное число будет 99999, косличество всех возможных чисел - 199999, а это меньше чем 2^18, т.е. меньше 3-х байт. Так что в дубель ворд поместиться полюбому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2007, 17:56 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34290370&tid=2029555]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
176ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 221ms |
| total: | 522ms |

| 0 / 0 |
