天天看點

vs2005 vc++ 程式釋出

10 vs2005 vc++ 程式釋出

先 1 生成-》配置管理-》release

再 2 項目-》屬性 -》C/C++-》代碼生成-》運作時庫-》

   選 第一個: 多線程 MT

9

error C3872: '0x3000': this character is not allowed in an identifie

//我的錯誤是輸入了一個中文的 空格 符号,把它删除 替換就好了

//是在程式錯誤 指出地方的 下一行呵~~

8

error C2001: newline in constant……

……看了謝解釋,大概是因為 unicode 的問題,把待輸出的 連續的 兩個 空格 删掉後就沒問題了 ^_^

1 找不到 .dll檔案

    重新安裝了VC後的問題,比如打開檔案會彈出 :“找不到 shsql.dll",”“找不到 EESWT.DLL", 那就去搜尋它,(如果本機上沒有 就baidu 它,下載下傳下來),放到安裝VC 的那個檔案夾的子檔案夾:(安裝VC 的那個檔案夾)/MSDev98/Bin。 (在那裡你也可以看見其他一些 DLL檔案。

2 . 提示 沒有定義: Enable3dControls();    (vc.net2005中)

我還不知道具體的原理,現在我是直接 按 F4,找到以下代碼:然後把它注釋掉了

#ifdef _AFXDLL

   Enable3dControls();    // Call this when using MFC in a shared DLL

#else

Enable3dControlsStatic(); // Call this when linking to MFC statically

#endif

3.    ×× .pch' is not a precompiled header file created with……

如果Rebuild All 不能解決的話,就:

使用右鍵點選項目工程中的該cpp檔案,選擇setting,在c/c++欄,”分類“下面 選擇PreCompiled headers,然後設定第一選項“N 不使用不使用預編譯頭",解決這個問題

4 DEBUG:

    …… vc98/include/winnt.h(1092) : error C2146: syntax error : missing ';' before identifier 'KSPIN_LOCK'

?我安裝的版本裡面的 winnt.h 是1985版247K, 這個郵箱([email protected] 密碼是123456”,baidu網友提供)裡面的是 313K…… 換了檔案又“fatal error C1083: Cannot open include file: 'specstrings.h': No such file or directory ”

把 注釋了#include “specstrings.h”又…………暈呵~最後是重新安裝程式了……

5 .fatal error C1010: unexpected end of file while looking for precompiled header directive

問題詳細解釋:

緻命錯誤C1010,在尋找預編譯訓示頭檔案時,檔案未預期結束。就是沒有找到預編譯訓示資訊的頭檔案。

問題一般發生在:

通過添加檔案的方式,添加了一些cpp檔案到一個MFC的程式,但該cpp檔案并不是MFC,是标準C++的。

解決方案1:

右鍵點選項目工程中的該cpp檔案,在菜單Project 》Settings裡C++頁面的Precomplie Header,設定為第一項:Not using precompiled headers。

解決方案2:

在.cpp檔案開頭添加包含檔案stdafx.h。

#include "stdafx.h"

作者:[email protected]

原創版權,村友錄,轉載請注明。

我同時安裝了 VC 6.0 和 Visual Studio 2005,用後者打開編譯同一個檔案其實又沒有問題了……哎~

   還碰到了其他的一些問題,如果誰知道具體的原因的話請指點哦!

   歡迎大家交流哈……

找不到MFC80UD.dll :……

vs2005 vc++ 程式釋出

這個問題可能是Manifest 引起的,可以通過修改項目->屬性->清單工具->輸入輸出,把“嵌入清單”選“否”,然後編譯、連結、運作即可。

6.提示 'string' : undeclared identifier

添加:#include <string>

并在檔案開頭處加上:using namespace std;

       或者每次定義的時候都用:std::string strName; 的形式

7 warning C4312 : conversion from 'LONG' to 'WNDPROC' of greater size

據說,這是因為32位/64位的問題,編譯器是警告你代碼到64位環境下可能會出問題。

類型轉換不要用(LONG_PTR),LongToPtr(),也不要直接用(WNPROC),而是用(WNDPROC)LongToPtr()。

warning C4311: 'type cast' : pointer truncation from 'LRESULT (__stdcall *)(HWND,UINT,WPARAM,LPARAM)' to 'LONG'

待解決……

附:[轉自微軟官方網]Windows 64 位版本的 C/C++ 程式設計

http://www.programfan.com/blog/article.asp?id=6396

将程式移植到64位Windows(2)

繼續閱讀