Externe non résolu symboles __RTC_* dans la programmation Windows tutoriel
À l'aide de Visual Studio Express 2010, j'ai fait un projet Windows avec la fenêtre d'options de l'Application et un Projet Vide. J'ai ensuite essayé le extrait de code suivant de la MSDN Windows tutoriels:
#include <windows.h>
#include <shobjidl.h>
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow)
{
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED |
COINIT_DISABLE_OLE1DDE);
if (SUCCEEDED(hr))
{
IFileOpenDialog *pFileOpen;
//Create the FileOpenDialog object.
hr = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_ALL,
IID_IFileOpenDialog, reinterpret_cast<void**>(&pFileOpen));
if (SUCCEEDED(hr))
{
//Show the Open dialog box.
hr = pFileOpen->Show(NULL);
//Get the file name from the dialog box.
if (SUCCEEDED(hr))
{
IShellItem *pItem;
hr = pFileOpen->GetResult(&pItem);
if (SUCCEEDED(hr))
{
PWSTR pszFilePath;
hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &pszFilePath);
//Display the file name to the user.
if (SUCCEEDED(hr))
{
MessageBox(NULL, pszFilePath, L"File Path", MB_OK);
CoTaskMemFree(pszFilePath);
}
pItem->Release();
}
}
pFileOpen->Release();
}
CoUninitialize();
}
return 0;
}
J'ai les erreurs suivantes:
1>------ Rebuild All started: Project: Test05, Configuration: Debug Win32 ------
1> Test05.cpp
1>Test05.obj : error LNK2019: unresolved external symbol @_RTC_CheckStackVars@8
referenced in function _wWinMain@16
1>Test05.obj : error LNK2019: unresolved external symbol __RTC_CheckEsp referenced in
function _wWinMain@16
1>Test05.obj : error LNK2001: unresolved external symbol __RTC_Shutdown
1>Test05.obj : error LNK2001: unresolved external symbol __RTC_InitBase
1>LINK : error LNK2001: unresolved external symbol _wWinMainCRTStartup
Ce qui se passe ici? Mieux que je peux dire quelque chose à faire avec wWinMain
, mais il est copié directement à partir du site.
Compilateurs semblent être des problèmes beaucoup plus pour moi que de l'apprentissage de la programmation. J'ai décidé sur Visual C++ après avoir essayé quelques autres (codeblocks pour la plupart), mais depuis Visual C++ semble avoir le plus de soutien (ou au moins la majorité des utilisateurs) j'ai pensé que c'était mieux que de ne jamais arriver n'importe où, car ils sont tous tellement pas intuitif pour un débutant.
OriginalL'auteur Vertro | 2012-04-14
Vous devez vous connecter pour publier un commentaire.
La _RTC_xxx symboles sont ajoutés lors de la "Base d'Exécution des Contrôles" sont utilisés; pour les désactiver, vous pouvez aller sur les propriétés du projet, et de définir les Propriétés de Configuration>C/C++>Toutes les Options>Basic Runtime Vérifie option "par Défaut". Bien que, comme mentionné dans les autres réponses, il semble que vous avez un décalage entre la C-Runtime des bibliothèques.
OriginalL'auteur Leo
On dirait que vous êtes reliant contre un autre verison du runtime des bibliothèques que ce que vous compilez contre.
Assurez-vous d'avoir une seule version de Visual Studio est installé et en chemin.
Si vous avez plus d'une version, essayez de renommer temporairement répertoires racine des autres installations Visual Studio pour voir si ce sera la cause de tout effet.
OriginalL'auteur toriningen
Je voudrais télécharger le code complet de l'échantillon à partir du lien ici plutôt que de copier et coller ce code snippet-vous liés à. Il peut être important de compilateur/linker les paramètres dans les fichiers de projet qui ne sont pas indiqués. L'échantillon est un VS 2008 solution, mais j'ai été capable de le mettre à jour pour l'année 2010 de la solution et de le construire. Cependant, il m'a donné fatale de l'éditeur de liens d'erreur: impossible de trouver " kernel32.lib" quand j'ai essayé de le construire dans VS 2008.
OriginalL'auteur Mike Zboray