Когда MSDN говорит вам освободить определенную функцию, тогда лучше всего делать это.
Части Windows API написаны на C и (некоторые части даже без STRICT
определены?) Идругие языки с лучшей проверкой типов в некоторых местах потребуют приведение.
В случае HGLOBAL у вас есть функция GlobalFlags
, которая может вам помочь. В вашем случае младший байт флагов равен нулю, что указывает на отсутствие блокировок. Если бы строки были выделены как подвижные, документация должна была бы сказать вам, что нужно заблокировать, прежде чем получить доступ к памяти, и это не так.
Последний гвоздь в гробу - отладка функции, и если вы сделаете это, вы сделаете это. обратите внимание, что он вызывает GlobalAlloc
с флагами, установленными в 0x40 (GPTR
), и поэтому должен быть передан в GlobalFree
без разблокировки. Если ваш компилятор жалуется, вы должны привести к соответствующему типу:
GlobalFree(HGLOBAL(VConfig.lpszAutoConfigUrl));