« Le point d'entrée de procédure CreateFile2 ne pouvait pas se trouver dans la bibliothèque de liens dynamiques KERNAL32.dll »Création exe vcxproj dans Windows 7 SP 1: L'entrée de procédure <function> ne pouvait pas se trouver dans la bibliothèque de liens dynamiques KERNAL32.dll
Nous allons à un nouveau système, C++ construit par waf à Visual studio 2013 build (vcxproj), converti plusieurs projets déjà, mais ils sont tous à construire dll. Essayer de construire un projet de fichier exe externe a été un peu plus difficile. Au début, il n'a même pas le voir comme une application win32 (bien que je construis en x64) mais j'ajouté:
<IsLauncher>true</IsLauncher>
qui semblait résoudre ce problème. Maintenant, je reçois cette erreur ci-dessus.
J'utilise un ancien plugin 3ème partie qui a un chemin logique qui utilise CreateFile2. J'ai le kit Windows 8.1 déjà installé sur ma machine (pour une raison quelconque) et il essaie d'utiliser Windows.h à partir de celui-ci. J'ai essayé, y compris Windows SDK \ 7.1A pour sa windows.h qui définit correctement mais les macros définies sal_supp.h que la sal.h VS 2013 a également défini une solution désoeuvrement.
J'ai examiné d'autres questions, mais ils semblent tous avoir des problèmes avec Win XP, rien sur Windows 7 tout à fait en forme. Et comme il s'agit de Kernel32, la plupart des autres questions ne semblent pas traiter des DLL système ou créer votre propre vcxproj. Tout cela a fonctionné quand je l'ai construit en waf, donc je sais que ce n'est pas vraiment quelque chose qui ne va pas avec n'importe quoi installé.
Stuff J'ai essayé:
<ClCompile><PreprocessorDefinitions>WINVER=0x0601;_WIN32_WINNT=0x0601;WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions></ClCompile>
<PropertyGroup Label="Configuration"><UseOfMfc>Dynamic</UseOfMfc></PropertyGroup>
<PropertyGroup><LinkIncremental>true</LinkIncremental></PropertyGroup>
<Link><AdditionalDependencies>kernel32.lib;Ws2_32.lib;psapi.lib;zlib.lib;shlwapi.lib;...</AdditionalDependencies></Link>
Je sais, pas une erreur d'éditeur de liens, mais cela valait la peine d'essayer.
Il est au bas de l'article MSDN, « prise en charge minimum client". 8> 7. Appliquer le deux-par-quatre: ne ** pas ** cible Windows version 10 lorsque vous voulez que votre programme fonctionne sur Windows 7. –
Désolé à l'origine, je pensais que cet ordinateur fonctionnait sous Windows 10 alors j'ai eu WINVER = 0x0A00 . Il s'avère donc que la raison pour laquelle la logique de code tente d'exécuter du code Windows 8 est que Windows 8.1 est installé sur le système et qu'il utilise Windows.h. J'ai essayé de le changer au windows.h Windows SDK \ 7.1A mais il a un sal_supp.h avec des macros qui définit les sont également définies dans le sal.h. VS 12.0 Me laissant dans un état différent. – Wildeflit