Я оцениваю Server 2008. Моя исполняемая программа C++ выдает эту ошибку. Я видел эту ошибку в MSDN, которая, похоже, потребовала исправления для нескольких предыдущих ОС. Кто-нибудь еще видел это? Я получаю те же результаты для 32- и 64-битной ОС.
Фрагмент кода:
HRESULT GroupStart([in] short iClientId, [in] VARIANT GroupDataArray,
[out] short* pGroupInstance, [out] long* pCommandId);
Если аргумент GroupDataArray VARIANT является оболочкой для одномерного SAFEARRAY of VARIANT, обертывающего записи структуры DCAPICOM_GroupData:
// DCAPICOM_GroupData
[
uuid(F1FE2605-2744-4A2A-AB85-1E1845C280EB),
helpstring("removed")
]
typedef struct DCAPICOM_GroupData {
[helpstring("removed")]
long m_lImageID;
[helpstring("removed")]
unsigned char m_ucHeadID;
[helpstring("removed")]
unsigned char m_ucPlateID;
} DCAPICOM_GroupData;
Я считаю, что вопрос верен, поскольку это программа OP, работающая с ошибкой. Но были бы полезны более подробные сведения: какая операция вызывает ошибку? Это спорадический или повторяющийся?





Недавно мы столкнулись с той же ошибкой при взаимодействии клиент-серверного приложения через DCOM. Оказалось, что размер упорядоченного указателя интерфейса, проходящего по сети (то есть не локального), изменился (стал больше). Возможно, вы захотите проверить, выполняет ли ваш код какой-либо специальный маршаллинг через CoMarshalInterface или тому подобное.
Мы работаем только локально и не используем маршаллинг, поэтому, похоже, это к нам не относится.
После обращения в службу поддержки Microsoft я теперь могу ответить на свой вопрос. Это (теперь) признанный ошибка. Проблема связана с маршалингом на стороне сервера, но до вызова кода сервера. Наша структура имеет длину 6 байтов, но эта реализация COM интерпретирует ее как 8, поэтому маршалинг не выполняется, и вы получаете сообщение об ошибке. Чтобы решить эту проблему, пока не будет выпущен пакет обновления, можно добавить два дополнительных байта в структуру, чтобы увеличить ее до 8 байтов. Мы еще не встречали ни одного случая, который терпит неудачу, но нам еще предстоит много тестов.
Это действительно не сайт с вопросами по общим вычислениям. Это для вопросов по программированию.