То, как я в итоге справился с этим, заключалось в том, чтобы фактически поместить индикаторы длины и wchars в отдельные, правильно напечатанные буферы.На самом деле они не должны жить в одном и том же буфере, поскольку все, что делает ODBC, - это добавляет «размер структуры» к каждому адресу каждый раз, когда он хочет перейти к следующему набору.
Я выяснил, какое выравнивание необходимодля WCHAR и SQLLEN, выделяя два маленьких массива в стеке и вычитая указатели между соседними ячейками.Затем я взял LCM обоих выравниваний и добавил отступы к буферам, чтобы каждый набор занимал кратное этого пространства.Я кормил ODBC это как фальшивый «размер структуры».