невозможно преобразовать параметр 5 из 'SIZE_T *' в 'size_t *' - почему? - PullRequest
0 голосов
/ 07 марта 2011

Я получаю эту ошибку при компиляции для 32-битной.Тот же файл компилируется без ошибок для 64-битной Windows

1> c: \ project \ test.cpp (1317): ошибка C2664: 'StringCbCopyExW': невозможно преобразовать параметр 5 из 'SIZE_T *'to' size_t * '

И SIZE_T, и size_t имеют одинаковый размер и знак, так в чем же разница?Зачем мне нужен актерский состав здесь?И если типы разные, почему это ошибка только в 32-битной Windows?

Ответы [ 2 ]

6 голосов
/ 07 марта 2011

SIZE_T отличается от std::size_t. Первый тип #define d в заголовках Windows, второй тип, определенный вашим компилятором C ++. Они бывают разных типов.

По крайней мере, в моей системе SIZE_T - это typedef для ULONG_PTR, то есть #define для unsigned long.

0 голосов
/ 07 марта 2011

что такое SIZE_T?

Может быть определено как "unsigned int" или uint32_t для обратной совместимости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...