|
|
|
Во что надо преобразовывать C++ -ное PUInt64 ?
|
|||
|---|---|---|---|
|
#18+
Ну т.е. в C-шной структуре имеем: PUInt64 m_totalBytes; unsigned m_totalPackets; Если в VB-шной структуре при этом наляпать (общение через API): m_totalBytes As Long m_totalPackets As Long то VB-приложения крашит. Если C-шную структуру переписать в виде unsigned m_totalBytes; unsigned m_totalPackets; то VB-приложение работает, но при этом C-шная библиотека при компиляции подругивается, мол можете потерять данные при конвертации PUInt64->unsigned, потому что там в оригинальном параметре PUInt64 А вдруг и вправду потеряю? Что надо писать в VB структуре (Type), чтоб в C оставить PUInt64? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2012, 18:06 |
|
||
|
Во что надо преобразовывать C++ -ное PUInt64 ?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, Вот так и написано - PUInt64? Не PUINT64? В любом случае, вопрос неполон без приведения описания этого типа (а в библиотеке могли своё описание сделать). Хорошо, предположим, что Код: plaintext 1. и размер указателя 32 бита. Теперь о краше. Судя по названию, m_totalBytes, библиотечная функция должна заполнять этот счётчик при вызове. Значит, она ожидает, что это поле вызывающей стороной заполняеЦЦа корректным значением (и, видимо, на NULL нет проверки), а именно адресом (VarPtr) счётчика. Счётчик в VB можно сделать As Currency (с учётом умножения на 10000), либо как UDT из двух Long-ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2012, 18:36 |
|
||
|
Во что надо преобразовывать C++ -ное PUInt64 ?
|
|||
|---|---|---|---|
|
#18+
ЦЦаВот так и написано - PUInt64? Не PUINT64? В любом случае, вопрос неполон без приведения описания этого типа (а в библиотеке могли своё описание сделать). Код: plaintext 1. 2. ЦЦаа именно адресом (VarPtr) счётчика.Нет там не Ptr, там переданные байты в явном целом виде возвращаются. 0 она без проблем возвращает Если переобозвать в unsigned в структуре в C, то байты исправно возвращает. ЦЦа либо как UDT из двух Long-овКак это записать на VB6? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2012, 19:00 |
|
||
|
Во что надо преобразовывать C++ -ное PUInt64 ?
|
|||
|---|---|---|---|
|
#18+
Дмитрий77, Ну, тогда Код: vbnet 1. 2. Про Currency надо помнить про множитель/делитель на 10000, и что он signed (но поскольку траффик в эксабайты слабо представляеЦЦа, можно забить). Дмитрий77Как это записать на VB6?Я удивляеЦЦа. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2012, 19:20 |
|
||
|
Во что надо преобразовывать C++ -ное PUInt64 ?
|
|||
|---|---|---|---|
|
#18+
ЦЦа, Я оставил так в C коде: unsigned m_totalBytes; unsigned m_totalPackets; Хрен с ними с Warning-гами. Иначе VB6 выпадает, чего бы я в VB ни писал, причем совсем не в том месте кода где эта структура передается или принимается. А вообще я пока не решил, нужны ли мне эти m_totalBytes. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2012, 20:01 |
|
||
|
|

start [/forum/topic.php?fid=60&tid=2157499]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 502ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...