Ich hatte vor einigen Monaten ein ähnliches Problem. Ein "FileExists" (Delphi Libraryfunktion) schlägt fehl bei Systemdateien. Intern wird die Winapi "FindFirstFile" genutzt, mit dieser bekommt man auch die Dateiattribute heraus und somit auch ob es eine Datei oder ein Ordner ist. Ist also nicht unwahrscheinlich dass die C++ Funktion auch auf dieser API basiert. Bei mir war es die Lösung den Check einfach wegzulassen und tatsächlich auf die Datei zuzugreifen (in dem Fall LoadLibraryEx mit den Flags "LOAD_LIBRARY_AS_IMAGE_RESOURCE OR LOAD_LIBRARY_AS_DATAFILE" um Icons aus Dlls auszulesen und drauf zu reagieren ob das fehlschlägt oder nicht.
Du könntest ja sicher leicht prüfen ob die C++ Funktion auch auf FindFirstFile basiert und testweise mal gucken ob z.B. CreateFile mit Leserechten oder andere Winapis funktionieren. Ich hatte diverse Sachen ausprobiert bevor ich den Check entfernt habe, aber ich weiß echt nicht mehr was ich alles getestet habe.