Я пытаюсь перестроить чей-то старый проект на C++, используя Dev-C++ (версия 4.9.9.2) и стандартный компилятор, с которым он поставляется (я думаю, g ++ с использованием MinGW) под Windows XP Pro SP3 32-бит. В одном из файлов strsafe.h включается и когда я пытаюсь скомпилировать, я получаю эту ошибку:Ожидаемое первичное выражение перед ',' token в strsafe.h
expected primary-expression before ',' token
строк кода, что ошибка указывает на находящиеся в strsafe.h (а() библиотеки Microsoft? заголовочный файл) все выглядят примерно так:
hr = StringGetsExWorkerA(pszDest, cchDest, cbDest, NULL, NULL, 0);
Для каждой из этих строк есть 2 "ожидаемых первичных выражения". Я нашел this forum thread, который предполагает, что значение NULL не распознается должным образом и предполагает, что я включил <cstddef>
перед strsafe.h. Я сделал это, и это не сработало. Кроме того, кажется, что NULL на самом деле определен, потому что когда я делаю «#define NULL 0» перед включением strsafe.h, я получаю сообщение об ошибке, указывающее, что я его переопределяю.
Извините, но я не могу предоставить более подробную информацию, но код для воспроизведения этой ошибки - это просто «#include <strsafe.h>
», поэтому я не знаю, что еще сказать. Кто-нибудь знает, что может происходить и как я могу это исправить?
Спасибо!
(я уже пытался загрузить последнюю версию Microsoft Platform SDK, так что я иметь последнюю актуальную версию strsafe.h)
Какая версия используемого SDK (какой полный путь к strsafe.h)? В моей копии из Vista SDK нет упоминаний о StringGetsExWorkerA(). –
Кажется, что подобная проблема упоминается на отдельном форуме: http://forums1.avsim.net/index.php?s = 6bf19a616003413c15cf25212fde2352 & showtopic = 244719 & PID = 1617949 & й = 0 & # entry1617949. Форум упоминает strsafe.h и MinGW в частности. Не могли бы вы попробовать, что они сделали, чтобы решить эту проблему? – reuben
Я загрузил версию PSDK-x86 отсюда: http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en#filelist (Windows® Server 2003 SP1 Platform SDK). Путь к strsafe.h - «C: \ Program Files \ Microsoft Platform SDK \ Include \ strsafe.h». @Rueben: «Решение» похоже на использование другой среды/компилятора? Я пробовал MSVC++, и у меня были другие проблемы для проекта, но вы правы в том, что у меня нет проблемы, о которой я спрашивал здесь. – Jordi