Ваш вопрос не имеет смысла.Указатели, по определению, являются адресом памяти для чего-либо - размер должен зависеть от платформы.Как бы вы разыменовали 128-битный указатель на аппаратной платформе, поддерживающей 64-битную адресацию?!
Вы можете создать 64 или 128-битные значения , но указатель напрямую связан сСхема адресации памяти базового оборудования.
РЕДАКТИРОВАТЬ
С вашим дополнительным заявлением, я думаю, я вижу, что вы пытаетесь сделать.К сожалению, я сомневаюсь, что это возможно.Если функция ядра, которую вы хотите использовать, принимает аргумент 64-битного указателя, скорее всего, это будет 64-битная функция (если вы не разрабатываете какое-то необычное оборудование).
Хотя технически возможно смешивать 64-битные инструкции в 32-битном исполняемом файле, ни один компилятор не позволит вам сделать это.64-битный вызов API будет использовать 64-битный код, 64-битные регистры и 64-битный стек - компилятору и операционной системе будет крайне неудобно управлять произвольным переключением из 32-битной среды в 64-битнуюenvironment.
Вы должны найти эквивалентный API для 32-битной среды.Возможно, вы могли бы опубликовать прототип функции ядра (имя + параметры), который вы хотите использовать, и кто-то может помочь вам найти лучшее решение.
Просто, чтобы не было путаницы, __ptr64
в MSDN это не независимость от платформы:
В 32-разрядной системе указатель, объявленный с помощью __ptr64, усекается до 32-разрядного указателя.