編譯器報錯非法絕對地址
1. 此代碼問題非法的間接定址與正確的原因
由於第二行的最後的分號是錯誤的(不應該有分號),它的錯誤被編譯器作為另一種可能的解釋而在錯誤處沒有報錯,但卻殃及到了後面,在s=P*2*r;這句正確語句處表現出來了——就是說編譯器按原先的解釋「思路」解釋不下去了,就報錯。正確的語句只能一種解釋,很好理解;錯誤的語句的表現就五花八門了,不是說不能解釋,而是要尋求一各合理的解釋是十分困難的……所以在我們調試代碼時要注意的一點就是,有時候報錯的地方並沒有錯誤,而經驗告訴我們這時應該向前找一找錯誤,一般都不會很遠!
2. Microsoft VBScript 編譯器錯誤 錯誤 '800a03f6' 怎麼弄好
首先是/nsastore/new/buyitembk.asp,行86 運行時出現問題,說得很明確:無法更新
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Oracle][ODBC][Ora]ORA-01407: 無法更新 ("WGS_APSERVER"."MUTI_PROD"."PHONE") 為 NULL
----------------------------------------那是你語法錯誤,請貼出代碼才能看出來。vbscript錯誤代碼及對應解釋大全 VBScript 語法錯誤
如果 VBScript 語句結構違反了一個或多個 VBScript 腳本語言語法規則,就會產生 VBScript 語法錯誤。
錯誤通常在執行程序前,編譯程序時產生。 以下是53個語法錯誤:
錯誤編號 描述
十進制 十六進制 說明
1001 800A03E9 內存不足
1002 800A03EA 語法錯誤
1003 800A03EB 缺少「:」
1005 800A03ED 需要 '('
1006 800A03EE 需要 ')'
1007 800A03EF 缺少「]」
1010 800A03F2 需要標識符
1011 800A03F3 需要 '='
1012 800A03F4 需要 'If'
1013 800A03F5 需要 'To'
1014 800A03F6 需要 'End'
1015 800A03F7 需要 'Function'
1016 800A03F8 需要 'Sub'
1017 800A03F9 需要 'Then'
1018 800A03FA 需要 'Wend'
1019 800A03FB 需要 'Loop'
1020 800A03FC 需要 'Next'
1021 800A03FD 需要 'Case'
1022 800A03FE 需要 'Select'
1023 800A03FF 需要表達式
1024 800A0400 需要語句
1025 800A0401 需要語句的結束
1026 800A0402 需要整數常數
1027 800A0403 需要 'While' 或 'Until'
1028 800A0404 需要 'While,'、 'Until,' 或語句未結束
1029 800A0405 需要 'With'
1030 800A0406 標識符太長
1031 800A0407 無效的數
1032 800A0408 無效的字元
1033 800A0409 未結束的串常量
1034 800A040A 未結束的注釋
1037 800A040D 無效使用關鍵字 'Me'
1038 800A040E 'loop' 沒有 'do'
1039 800A040F 無效 'exit' 語句
1040 800A0410 無效 'for' 循環控制變數
1041 800A0411 名稱重定義
1042 800A0412 必須為行的第一個語句
1043 800A0413 不能賦給非Byval參數
1044 800A0414 調用 Sub 時不能使用圓括弧
1045 800A0415 需要文字常數
1046 800A0416 需要 'In'
1047 800A0417 需要 'Class'
1048 800A0418 必須在一個類的內部定義
1049 800A0419 在屬性聲明中需要 Let , Set 或 Get
1050 800A041A 需要 'Property'
1051 800A041B 參數數目必須與屬性說明一致
1052 800A041C 在類中不能有多個預設的屬性/方法
1053 800A041D 類初始化或終止不能帶參數
1054 800A041E Property Let 或 Set 至少應該有一個參數
1055 800A041F 不需要的 'Next'
1056 800A0420 只能在 『Property』 或 』Function』 或 』Sub』 上指定 』Default』
1057 800A0421 說明 'Default' 必須同時說明 'Public' "
1058 800A0422 只能在 Property Get 中指定 'Default'
VBScript 運行時錯誤
如果 VBScript 腳本執行系統無法實施的操作,則會產生 VBScript 運行時錯誤。只有在運行腳本、為變數表達式賦值或
分配內存時,才會產生 VBScript 運行時錯誤。 以下是65個運行時錯誤:
錯誤編號 描述
十進制 十六進制 說明
5 800A0005 無效過程調用或參數
6 800A0006 溢出
7 800A0007 內存不足
9 800A0009 下標越界
10 800A000A 該數組為定長的或臨時被鎖定
11 800A000B 被零除
13 800A000D 類型不匹配
14 800A000E 字元串空間溢出
17 800A0011 無法執行請求的操作
28 800A001C 堆棧溢出
35 800A0023 未定義 Sub 或 Function
48 800A0030 載入 DLL 錯誤
51 800A0033 內部錯誤
52 800A0034 壞文件名或數
53 800A0035 文件未找到
54 800A0036 壞文件模式
55 800A0037 文件已經打開
57 800A0039 設備I/O錯誤
58 800A003A 文件已經存在
61 800A003D 磁碟空間已滿
62 800A003E 輸入超出文件尾
67 800A0043 文件太多
68 800A0044 設備不可用
70 800A0046 許可權禁用
71 800A0047 磁碟未准備好
74 800A004A 不能用不同的驅動器重新命名
75 800A004B 路徑/文件訪問錯誤
76 800A004C 路徑未找到
91 800A005B 未設置對象變數
92 800A005C For 循環未初始化
94 800A005E 非法使用 Null
322 800A0142 不能建立所需臨時文件
424 800A01A8 需要對象
429 800A01AD ActiveX 部件無法創建對象
430 800A01AE 類不支持自動化
432 800A01B0 在自動化操作中未找到文件名或類名
438 800A01B6 對象不支持該屬性或方法
440 800A01B8 Automation錯誤
445 800A01BD 對象不支持此操作
446 800A01BE 對象不支持指定的參數
447 800A01BF 對象不支持當前的區域設置
448 800A01C0 未找到命名參數
449 800A01C1 參數不可選
450 800A01C2 錯誤的參數個數或無效的參數屬性值
451 800A01C3 對象不是一個集合
453 800A01C5 指定的dll函數未找到
455 800A01C7 代碼源鎖錯誤
457 800A01C9 這個鍵已經是本集合的一個元素關聯
458 800A01CA 變數使用了一個 VBScript 中不支持的自動化(Automation)類型
462 800A01CE 遠程伺服器不存在或不能訪問
481 800A01E1 無效圖片
500 800A01F4 變數未定義
501 800A01F5 違法的分配
502 800A01F6 腳本對象不安全
503 800A01F7 對象不能安全初始化
504 800A01F8 對象不能安全創建
505 800A01F9 無效的或不合格的引用
506 800A01FA 類未被定義
507 800A01FB 發生異常
5016 800A1398 需要正則表達式對象
5017 800A1399 正則表達式中的語法錯誤
5018 800A139A 錯誤的數量詞
5019 800A139B 在正則表達式中需要 ']'
5020 800A139C 在正則表達式中需要 ')'
5021 800A139D 字元集越界
32811 800A802B 元素未找到
ASP錯誤代碼說明
錯誤代碼 錯誤消息 說明
ASP0100 Out of memory 內存不足(不能分配要求的內存
ASP0101 Unexpected error 意外錯誤
ASP0102 Expecting string input 缺少字元串輸入
ASP0103 Expecting numeric input 缺少數字輸入
ASP0104 Opration not allowed 操作不允許
ASP0105 Index out of ange 索引超出范圍(一個數組索引超屆)
ASP0106 Type Mismatch 類型不匹配(遇到的數據類型不能被處理)
ASP0107 Stack Overflow 棧溢出(正在處理的數據超出了允許的范圍)
ASP0115 Unexpected error 意外錯誤(外部對象出現可捕獲的exception_name錯誤,腳本不能繼續運行)
ASP0177 Server.CreateObject Failed 伺服器創建對象失敗(無效的progid)
ASP0190 Unexpected error 意外錯誤(當釋放外部對象,產生可捕獲的錯誤)
ASP0191 Unexpected error 意外錯誤(在外部對象的OnStartPage方法中產生可捕獲的錯誤)
ASP0192 Unexpected error 意外錯誤(在外部對象的OnEndPage方法中產生可捕獲的錯誤)
ASP0193 OnStartPage Failed 在外部對象的OnStartPage方法中產生錯誤
ASP0194 OnEndPage Failed 在外部對象的OnEndPage方法中產生錯誤
ASP0240 Script Engine Exception 腳本引擎從object_name對象中拋出exception_anme異常
ASP0241 CreateObject Exception object_name 對象的CreatObject方法引起了exception_name異常
ASP0242 Query OnStartPage nterface 查詢對象Object_name的OnsException
伺服器端包含的指令和使用程序
本節介紹IIS 5.0伺服器端包含的指令的語法和參數值。還介紹IISRESTART實用程序的語法和使用,該實用程序可用來從遠程計算機、命令行和SSI指令的內部管理Web伺服器。
1. SSI指令、屬性和標記
指令 說明
#include 將指定的文件內容插入到被發送到客戶機的響應流中,並替換該指令。例如:<!-- #include file=」userfilbits.inc」à
#config 指定用於日期、時間和文件尺寸的格式,以及返回客戶機的通用SSI錯誤消息的文本格式。例如:
<!—#config ERRMSG=」SSI Processing Error」à
<!—#config TIMEFMT=」%A, %B, %d, %Y, %H:%M:%S 」à
<!—#config SIZEFMT=」BYTES」à
參見下文中關於用於該指令的屬性和標記的列表
#echo 將HTTP環境變數插入到發送給客戶機的相應流中,並替換該指令。例如:
<!--#echo VAR-「SERVER_NAME」à
參見下文中關於用於該指令的屬性和標記的列表
#exec 在伺服器上執行一個程序或shell命令。例如:
<!--#exec
CGI=」/scripts/myapp.exe?value1=this&value2=that」à
<!--#exec CMD=」cmd.exe /c iisrestart /stop」à
<!--#exec CMD=」cmd.exe /c net start cisvc」à
參加下文中關於該指令的屬性和標記列表。
必須添加以下條目到Windows Registry中才可以使用CMD屬性:
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\W3SVC
\Parameters
\SSIEnableCmdDirective
將該值設置為1並重新啟動WWW服務,CMD屬性才被允許用於#exec指令。將其設置為0則禁止它並防止未驗證的使用,否則將會破壞伺服器的安裝。
#flastmod 將指定文件的最新更改的日期和時間插入到要發送客戶機的響應流中。例如:
<!--#flastmod file=」default.asp」à
參見下文中關於該指令的屬性和標記的列表。
#fsize 將指定文件的尺寸插入到要發送給客戶機的響應流中。例如:
<!--#fsize file=」default.asp」à
參見下文中關於該指令的屬性和標記的列表。
2. #exec指令的命令類型屬性
屬性 說明
CGI 在Web伺服器上下文中執行指定的應用(即通過ISAPI對請求和響應的訪問),並將任何查詢串的值傳遞到應用中。該應用與Web伺服器運行在不同的內存中
CMD 啟動指定的操作系統命令的解釋程序的一個實例,並執行該指令的命令
3. #cinlcude、#flastmod和#fsiaze的路徑類型屬性
屬性 說明
FILE 該屬性的值是絕對和相對路徑加上文件名,就像在DOS命令提示中
所使用的,如「\files\web\myfile.txt」
VIRTUAL 該屬性值是絕對路徑和相對路徑加上文件名,與當前的Web站點的根文件夾相關。如「/file/web/myfile.txt」
4. #config指令的SIZEFMT標記
標記 說明
BYTES 文件大小將以位元組返回
ABBEV 文件大小將以計算並以最近的千位元組(KB)數返回
5. #config指令的TIMEFMT標記
標記 說明
%a 一周的日子按」Mon」、」Tue」等表示
%A 一周的日子按」Monday」、」Tuesday」等表示
%b 月份名按」Jan」、」Feb」等表示
%B 月份名按」January」、」February」等表示
%c 與伺服器的地區相對應的當前的日期和時間格式(如11/06/99 12:51:32)
%d 一月的日子按數表示(01到31)
%H 用24小時格式表示當前時間(00到23)
%I 用12小時格式表示當前時間(01到12)
%j 按數字(001到366)表示一年的日子
%m 月份按數字表示(01到12)
%M 當前分鍾按數字表示(00到59)
%p 按伺服器地區表示相應的「上午」或「下午」文字如(AM或PM)
%S 當前的秒按數字表示(00到59)
%U 一年的每周按數字表示(00到51),並且每周的第一天為Sunday
%w 一周每天按數字表示(0到6),並且每周的第一天為Sunday
%W 一年的沒有數字表示(00到51),並且每周的第一天為Monday
%x 當前的日期格式對應於伺服器地區表示的(如11/06/99)
%X 當前時間格式相應與伺服器地區表示的(12:51:32)
%y 沒有世紀表示的年數(如01)
%Y 有世紀表示的年數(如2001)
%z,%Z 伺服器時間帶的名字或縮寫(如果知道的話)
%% 百分號字元
6. #echo指令的VAR標記
標記 說明
AUTH_TYPE 客戶機用來驗證網頁是否拒絕匿名訪問的驗證類 型,如「Basic」或「NTLM」(即,詢問/響應)
AYTH_PASSWORD 由用戶向伺服器提供的口令,如果該頁拒絕匿名訪問並且客戶機使用Basic方法驗證的話
AUTH_USER 由用戶向伺服器提供的用戶名,如果在NTLM和Basic(或其他)方法下該頁拒絕匿名訪問的話
CONTENT_LENGTH 在請求體中發送的位元組數,即,作為POST向伺服器發送的位元組數
CONTENT_TYPE 作為POST在請求體中發送的數據MIME類型
DOCUMENT_NAME 由客戶機請求的文檔的全實際路徑和文件名
DOCUMENT_URT 由客戶機請求的文檔的全虛擬路徑和文件名
DATE_GMT 伺服器操作系統中的日期和時間設置,不帶任何
Greenwich Mean Time的調節
DATE_LOCAL Greenwich Mean Time調節後的伺服器的操作系統的日期和時間設置
GATEWAY_INTERFACE 用於處理請求的介面類型,如「CGI/1.1」
HTTP_ACCEPT 客戶機應用系統通知伺服器它所能接受的MIME類型的以逗號分隔的一個列表
LAST_MODITIED 由客戶機請求的文件和資源最後被更改的日期和時間
PATH_INFO 由客戶機請求的文檔的全虛擬路徑和文件名,與該Web站點的根文件夾相關
PATH_TRANSLATED 由客戶機請求的文檔的全實際路徑和文件名
QUERY_STRING 在從URL解碼格式轉換之後,被追加到客戶機請求的文檔或資源的URL中的任何查詢串的值
QYERY_STRING_ UNESCAPED 在從URL編譯格式轉換前,被追加到客戶機請求的文檔或資源的URL中的任何查詢串的值
REMOTE_ADDR 請求該頁的客戶機的IP地址
REMOTE_HOST 客戶機請求頁面的那個網路的主機名或IP地址
REMOTE_NAME 請求頁面的客戶機的名字(如果有的話)
REQUEST_METHOD 請求頁面的使用方法,「GET」或「POST」
SCRIPT_NAME 由客戶機請求的文檔的全虛擬路徑和文件名,與Web站點的根目錄相關
SERVER_NAME 接受請求的伺服器的網路名和URL主機名
SERVER_PORT 接受請求的埠號。如,「80」是對一般頁的請求,「443」是對SSL源的請求
SERVER_PORT_SECURE 埠號,如果該請求是在一個源協議上的話
SERVER_PROTOCOL 傳遞請求所基於的HTTP協議,如「HTTP/1.1」
SERVER_SOFTWARE Web伺服器的名字/版本串,如「Microsoft-IIS/5.0」
URL 在請求文檔和資源時用戶所指定的完整URL
ALL_HTTP 未包含在該列表中的HTTP環境變數的所有名/值對,如HTTP_COOKIE和HTTP_ACCEPT_LANGUAGE
IISRESTART實用程序及開關
Iisrestart.exe實用程序可用來管理運行在任何伺服器上的Web服務。由於它以正確的順序停止和開始各種集成的服務,因此它應先與NET STOP 和NET START命令的使用。
語法為iisrestart [computer_name] /switch [/switch…]
以下時switch值的列表:
Switch 含義
RESTART 停止然後重新啟動運行在指定計算機上的所有Internet服務
START 啟動運行在指定計算機上的所有Internet服務
STOP 停止運行在指定計算機上的所有Internet服務
REBOOT 重新引導指定的計算機
REBOOTONERROR 當啟動、停止或重新啟動Internet服務時出現錯誤時,重新引導指定的計算機
NORFORCE 如果試圖溫和地停止Internet服務失敗的話,不要強迫Internet服務中斷
TIMOUT:val 為了使所有Internet服務停止,設置以秒為單位的超時值
對於RESTART預設值為20,對於REBOOT預設值為0
如果REBOOTONERROR開關也被指定了,則如果超過超時周期,計算機將重新引導
STATUS 顯示所有Internet服務的狀態
ENABLE 允許本地系統中的Internet服務的重新啟動
DISABLE 禁止本地系統中的Internet服務的重新啟動
該實用程序可用於CMD類型的#echo SSI指令,假如網頁拒絕匿名訪問並且用戶提供了一個合法帳戶的信息,而該帳戶具有對目標伺服器的Administrator許可權的話,但是,在這種情況下,REBOOT、START和RESTART選項將不能正確運行。
NET STOP和NET START命令
Net.ext 實用程序可用於管理運行在伺服器上的任何服務,該伺服器可以是本地的也可以是其他機器上的。盡管不建議與Internet服務(如WWW或FTP服務)一起使用,但對於停止和啟動其他的服務是有用的(事實上,NET命令也可用於發布全部的與網路相關的其他命令)。
語法為net [start|stop]service_name
例如,可以使用該名利停止或啟動Microsoft Indexing Service;即net stop cisvc和net start cisvc。它可用與CMD類型的$echo SSI指令,如果網頁拒絕匿名訪問並且用戶提供了一個具有目標伺服器上Administrator許可權的帳戶信息的話。
NET命令的所有選項和開光的列表可在Windows2000幫助文件中找到。從Start菜單選項選擇Help,並在Help窗口的Index頁查找「net commands」即可。
回答者:廈門遠華集團 - 經理 五級 9-14 21:40
可能原因:
1.sql語句出錯(要插入或更新的欄位的數值不能為空值)
2.打開資料庫出錯,沒有在指定路徑發現資料庫
解決辦法:
1.針對這種情況,在打開記錄集之前輸入一下語句:
response.write(sql) 'sql就是你的sql語句
response.end
仔細分析輸出的這個sql有沒有毛病。對照資料庫看是不是有不能為空的欄位沒有賦值,等等。
2.在文件開頭加入on error resume next
在打開數據連接的下一行加如:
if err.number<> 0 then
response.write("//////////")
response.end
end if
如果輸出了////////就是數據連接有問題了。仔細檢查連接字元串。問題就在這里了。(除了驅動和系統的原因)
回答者:hongzhouche - 江湖少俠 六級 9-14 21:46
首先是/nsastore/new/buyitembk.asp,行86 運行時出現問題,說得很明確:無法更新
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Oracle][ODBC][Ora]ORA-01407: 無法更新 ("WGS_APSERVER"."MUTI_PROD"."PHONE") 為 NULL
-------------------------------------------
其次 是上面的錯誤產生後使用錯誤信息顯示文件500-100.asp來將上面的錯誤信息顯示給客戶瀏覽器,而顯示的時候出現了一些小問題,
Microsoft VBScript 編譯器錯誤 錯誤 '800a03f6'
缺少 'End'
/iisHelp/common/500-100.asp,行242
通常可以忽略這個問題,只需要修復第一個問題就可以了,
-----------------------------------
看一下/nsastore/new/buyitembk.asp,行86 或者運行時操作的數據,等,以發現問題的所在---
其次 是上面的錯誤產生後使用錯誤信息顯示文件500-100.asp來將上面的錯誤信息顯示給客戶瀏覽器,而顯示的時候出現了一些小問題,
Microsoft VBScript 編譯器錯誤 錯誤 '800a03f6'
缺少 'End'
/iisHelp/common/500-100.asp,行242
通常可以忽略這個問題,只需要修復第一個問題就可以了,
-----------------------------------
看一下/nsastore/new/buyitembk.asp,行86 或者運行時操作的數據,等,以發現問題的所在
3. JAVA編譯時提示出現非法字元
工具/材料:電腦、EditPlus軟體
1、首先在EditPlus菜單欄找到:【工具】>【首選項】,點擊後,打開首選項窗口。
4. 用keilc51d定義一個有絕對地址的變數時報錯,是需要設置什麼嗎
說實在的我也不會這個,沒用過,但是看過一些論壇上說用-at- 定義絕對地址時要將其放在函數的外部,所以將你的程序改成如下正常編譯
#include<reg51.h>
#include<absacc.h>
unsigned char data x _at_ 0x40;
void main()
{
while(1);
}
5. C語言編譯、連接的各種錯誤
編譯器錯誤 C2001 錯誤消息
常數中有換行符
字元串常數不能繼續到第二行,除非進行下列操作:
•用反斜杠結束第一行。
•用一個雙引號結束第一行上的字元串,並在下一行用另一個雙引號開始該字元串。
用 \n 結束第一行是不夠的。
編譯器錯誤 C2002 錯誤消息
無效的寬字元常數
多位元組字元常數是非法的。
通過檢查下面的可能原因進行修復
1.寬字元常數包含的位元組比需要的多。
2.未包括標准頭文件 STDDEF.h。
3.寬字元不能與一般字元串連接。
4.寬字元常數之前必須是字元「L」:
編譯器錯誤 C2003 錯誤消息
應輸入「defined id」
標識符必須跟在預處理器關鍵字之後。
編譯器錯誤 C2004 錯誤消息
應為「defined(id)」
標識符必須出現在預處理器關鍵字之後的括弧中。
也可能由於為 Visual Studio .NET 2003 進行的編譯器一致性工作生成此錯誤:在預處理器指
令中缺少括弧。
如果預處理器指令缺少右括弧,則編譯器將生成一個錯誤。
編譯器錯誤 C2005 錯誤消息
#line 應跟一個行號,卻找到「token」
#line 指令後面必須跟行號。
編譯器錯誤 C2006 錯誤消息
「directive」應輸入文件名,卻找到「token」
諸如 #include 或 #import 等指令需要文件名。若要解決該錯誤,請確保 token 是一個有效
文件名。並且將該文件名放在雙引號或尖括弧中。
編譯器錯誤 C2007 錯誤消息
#define 語法
#define 後未出現標識符。若要解決該錯誤,請使用標識符。
編譯器錯誤 C2008 錯誤消息
「character」: 宏定義中的意外
該字元緊跟在宏名之後。若要解決該錯誤,宏名之後必須有一個空格。
編譯器錯誤 C2009 錯誤消息
宏形式「identifier」重復使用
宏定義的形參表多次使用該標識符。宏的參數列表中的標識符必須是唯一的。
編譯器錯誤 C2010 錯誤消息
「character」: 宏形參表中的意外
該字元在宏定義的形參表中使用不正確。移除該字元以解決該錯誤。
編譯器錯誤 C2011 錯誤消息
「identifier」:「type」類型重定義
該標識符已定義為 type 類型。如果多次將某個類型庫導入同一個文件,也可能生成 C2011
。
編譯器錯誤 C2012 錯誤消息
在「<」之後缺少名稱
#include 指令缺少所需的文件名。
編譯器錯誤 C2013 錯誤消息
缺少「>」
#include 指令缺少右尖括弧。添加右尖括弧以解決該錯誤。
編譯器錯誤 C2014 錯誤消息
預處理器命令必須作為第一個非空白空間啟動
預處理器指令的 # 符號必須是非空白行上的第一個字元。
編譯器錯誤 C2015 錯誤消息
常數中的字元太多
一個字元常數包含的字元多於兩個。標准字元常數只能包含一個字元,長字元常數只能包含兩
個字元。
轉義序列(如 \t)將被轉換為單個字元。
當使用 Microsoft 擴展將字元常數轉換為整數時,也可能發生 C2015。
編譯器錯誤 C2017 錯誤消息
非法的轉義序列
轉義序列(如 \t)出現在字元或字元串常數之外。
當 stringize 運算符與包括轉義序列的字元串一起使用時會發生 C2017。
編譯器錯誤 C2018 錯誤消息
未知字元「hexnumber」
源文件包含一個意外的 ASCII 字元,該字元由其十六進制數標識。若要解決該錯誤,請移除
該字元。
編譯器錯誤 C2019 錯誤消息
應找到預處理器指令,卻找到「character」
該字元跟在 # 符號的後面,但它不是預處理器指令的第一個字母。
編譯器錯誤 C2020 錯誤消息
「member」:「class」成員重定義
從基類或結構繼承的成員被重定義。不能重定義繼承成員,除非它在基類中被聲明為 virtual
。
編譯器錯誤 C2021 錯誤消息
應輸入指數值,而非「character」
用作浮點常數的指數的字元是一個無效數字。確保使用的指數在范圍之內。
編譯器錯誤 C2022 錯誤消息
「number」: 對字元來說太大
字元或字元串常數中跟在反斜杠 (\) 後面的八進制數字太大,不能表示字元。
編譯器錯誤 C2026 錯誤消息
字元串太大,已截斷尾部字元
該字元串的長度超過了 16380 個單位元組字元的**。
連接相鄰字元串之前,字元串的長度不能超過 16380 個單位元組字元。
大約為此長度的一半的 Unicode 字元串也會生成此錯誤。
編譯器錯誤 C2027 錯誤消息
使用了未定義類型「type」
類型只有經過定義才能使用。若要解決該錯誤,請確保在引用類型前已對其進行了完全定義。
有可能聲明一個指向已聲明但未定義的類型的指針。但是 Visual C++ 不允許引用未定義的類
型。
編譯器錯誤 C2028 錯誤消息
結構/聯合成員必須在結構/聯合中
結構或聯合成員必須在結構或聯合內部聲明。
編譯器錯誤 C2030 錯誤消息
「identifier」: 結構/聯合成員重定義
結構或聯合將同一標識符用於多個成員。
編譯器錯誤 C2032 錯誤消息
「identifier」: 函數不能是結構/聯合「structorunion」的成員
該結構或聯合中的一個成員函數在 C++ 中允許使用而在 C 中卻不允許。若要解決該錯誤,請
編譯為 C++ 程序或移除該成員函數。
編譯器錯誤 C2033 錯誤消息
「identifier」: 位域不能有間接定址
該位域被聲明為指針,這是不允許的。
編譯器錯誤 C2034 錯誤消息
「identifier」: 位域類型對於位數太小
該位域聲明中位的數目超過了基類型的大小。
編譯器錯誤 C2036 錯誤消息
「identifier」: 未知的大小
對 identifier 的操作需要數據對象的大小,而該大小無法確定。
編譯器錯誤 C2039 錯誤消息
「identifier1」: 不是「identifier2」的成員
該代碼錯誤調用或引用了結構、類或聯合的成員。
編譯器錯誤 C2040 錯誤消息
「operator」:「identifier1」與「identifier2」的間接定址級別不同
涉及該運算符的表達式具有不一致的間接定址級別。
如果兩個操作數都是算術的或都是非算術的(如數組或指針),則不用更改就可使用它們。如
果一個操作數是算術的,而另一個不是,則算術運算符將轉換為非算術類型。
編譯器錯誤 C2041 錯誤消息
非法的數字「character」(用於基「number」)
指定的字元不是基(如八進制或十六進制)的有效數字。
編譯器錯誤 C2042 錯誤消息
signed/unsigned 關鍵字互相排斥
在單個聲明中使用關鍵字 signed 和 unsigned。
編譯器錯誤 C2043 錯誤消息
非法 break
break 僅在 do、for、while 或 switch 語句中合法。
編譯器錯誤 C2044 錯誤消息
非法 continue
continue 僅在 do、for 或 while 語句中合法。
編譯器錯誤 C2045 錯誤消息
「identifier」: 標簽重定義
該標簽出現在同一函數中的多條語句之前。
編譯器錯誤 C2046 錯誤消息
非法的 case
關鍵字 case 只能出現在 switch 語句中。
編譯器錯誤 C2047 錯誤消息
非法的 default
關鍵字 default 僅能出現在 switch 語句中。
編譯器錯誤 C2048 錯誤消息
默認值多於一個
switch 語句包含多個 default 標簽。刪除其中一個 default 標簽可解決該錯誤。
編譯器錯誤 C2050 錯誤消息
switch 表達式不是整型
switch 表達式計算結果為一個非整數值。若要解決該錯誤,請在 switch 語句中只使用整數
值。
編譯器錯誤 C2051 錯誤消息
case 表達式不是常數
Case 表達式必須是整數常數。
編譯器錯誤 C2052 錯誤消息
「type」: 非法的 case 表達式類型
Case 表達式必須是整數常數。
編譯器錯誤 C2053 錯誤消息
「identifier」: 寬字元串不匹配
寬字元串被分配給了一個不兼容的類型。
編譯器錯誤 C2054 錯誤消息
在「identifier」之後應輸入「(」
該函數標識符用在需要尾部括弧的上下文中。
導致該錯誤的可能原因是省略了復雜初始化上的等號 (=)。
編譯器錯誤 C2055 錯誤消息
應輸入形參表,而不是類型表
函數定義包含參數類型列表而不包含形參表。ANSI C 需要命名的形參,除非它們是 void 或
是省略號 (...)。
編譯器錯誤 C2056 錯誤消息
非法表達式
表達式因前一個錯誤而無效。
編譯器錯誤 C2057 錯誤消息
應輸入常數表達式
上下文要求常數表達式,即其值在編譯時已知的表達式。
編譯器錯誤 C2058 錯誤消息
常數表達式不是整型
該上下文需要整數常數表達式。
編譯器錯誤 C2059 錯誤消息
語法錯誤 :「token」
該標記導致語法錯誤。
若要確定原因,則不僅要檢查在錯誤信息中列出的行,還要檢查該行上面的行。下面的示例對
聲明 j 的行生成了錯誤信息,而該錯誤的真正源卻出現在其上面的行中。
如果對行的檢查沒有獲得有關可能出現的問題的任何線索,則嘗試注釋掉在錯誤信息中列出的
行以及可能出現在該行上面的若干行。
如果該錯誤信息在緊跟 typedef 變數的符號上出現,則檢查該變數是否已在源代碼中定義。
如果符號沒有計算出任何結果(在使用 /Dsymbol= 編譯時可能發生),可能會導致 C2059。
可能收到 C2059 的另一個特定原因是編譯在函數的默認參數中指定了結構的應用程序。參數的
默認值必須是一個表達式。初始值設定項列表(如用於初始化結構的初始值設定項列表)不是表達式。其解決方法是定義一
個執行所需初始化的構造函數。
編譯器錯誤 C2060 錯誤消息
語法錯誤 : 遇到文件結束
至少還需要一個標記。
編譯器錯誤 C2061 錯誤消息
語法錯誤: 標識符「identifier」
編譯器發現了不應在此出現的標識符。請確保在使用 identifier 之前對其進行聲明。
初始值設定項可能括在了括弧中。為避免該問題,請將聲明符括在括弧中或使其成為 typedef
。
在編譯器將表達式作為類模板參數檢測時也可能導致此錯誤;使用 typename 告訴編譯器它是
一個類型。
編譯器錯誤 C2062 錯誤消息
意外的類型「type」
編譯器不需要類型名稱。
編譯器處理構造函數的參數列表中未定義類型的方式也可能導致 C2062。如果編譯器遇到未定
義的(拼錯了嗎?)類型,則它假定構造函數是一個表達式,並發出 C2062。若要解決此錯誤,請只使用構造函數參數列表
中的定義類型。
編譯器錯誤 C2063 錯誤消息
「identifier」: 不是函數
該標識符用作函數,但未聲明為函數。
編譯器錯誤 C2064 錯誤消息
項不會計算為接受「number」個參數的函數
通過表達式調用了函數。該表達式未計算為函數指針。
編譯器錯誤 C2065 錯誤消息
「identifier」: 未聲明的標識符
在可使用變數的類型前必須在聲明中指定它。在可以使用函數前必須在聲明或原型中指定該函
數使用的參數。
可能的原因:
1.您正在用 C 運行庫的調試版本進行編譯,在 for 循環中聲明標准 C++ 庫迭代器變數,然後
嘗試在 for 循環范圍外使用該迭代器變數。 用 C 運行庫的調試版本編譯標准 C++ 庫代碼暗指使用 /Zc:forScope。有關更
多信息,請參見調試迭代器支持。
2.可能正在調用當前不受生成環境支持的 SDK 頭文件中的函數。
3.省略必要的包含文件,尤其是在定義 VC_EXTRALEAN、WIN32_LEAN_AND_MEAN 或
WIN32_EXTRA_LEAN 時。這些符號從 windows.h 和 afxv_w32.h 中排除了一些頭文件以加快編譯。(在 windows.h 和
afxv_w32.h 中查找排除的頭文件的最新說明。)
4.標識符名拼寫錯誤。
5.標識符使用了錯誤的大小寫字母。
6.字元串常數的後面缺少右引號。
7.命名空間范圍不正確。例如,若要解析 ANSI C++ 標准庫函數和運算符,則必須用 using 指
令指定 std 命名空間。下面的示例未能編譯,因為 using 指令被注釋掉,並且在 std 命名空間中定義了 cout:
編譯器錯誤 C2066 錯誤消息
轉換到函數類型是非法的
在 ANSI C 中,函數指針和數據指針間的轉換是非法的。
編譯器錯誤 C2067 錯誤消息
轉換到數組類型是非法的
對象被轉換成了數組類型。
編譯器錯誤 C2069 錯誤消息
「void」項到非「void」項的強制轉換
類型 void 不能轉換成任何其他類型。
編譯器錯誤 C2070 錯誤消息
「type」: 非法的 sizeof 操作數
sizeof 運算符需要一個表達式或類型名稱。
編譯器錯誤 C2071 錯誤消息
「identifier」: 非法的存儲類
聲明 identifier 所用的存儲類無效。
編譯器錯誤 C2072 錯誤消息
「identifier」: 函數的初始化
錯誤指定了函數初始值設定項。
編譯器錯誤 C2073 錯誤消息
「identifier」: 部分初始化數組的元素必須有默認構造函數
為用戶定義的類型或常數的數組指定的初始值設定項太少。如果沒有為數組成員指定明確的初
始值設定項及其對應的構造函數,則必須提供默認的構造函數。
編譯器錯誤 C2074 錯誤消息
「identifier」:「class-key」初始化需要大括弧
在指定的類、結構或聯合初始值設定項兩邊沒有大括弧。
編譯器錯誤 C2075 錯誤消息
「identifier」: 數組初始化需要大括弧
在指定的數組初始值設定項兩邊沒有大括弧。
編譯器錯誤 C2077 錯誤消息
非標量欄位初始值設定項「identifier」
試圖用非標量(結構、聯合、數組或類)初始化位域。使用整數值或浮點值。
編譯器錯誤 C2078 錯誤消息
初始值設定項太多
初始值設定項的數目超過了要初始化的對象數。
編譯器錯誤 C2079 錯誤消息
「identifier」使用未定義的類/結構/聯合「name」
指定的標識符是一個未定義的類、結構或聯合。
初始化匿名聯合時,可能會導致此錯誤。
編譯器錯誤 C2081 錯誤消息
「identifier」: 形參表中的名稱非法
標識符導致語法錯誤。
此錯誤可能是由使用形參表的舊形式導致的。必須在形參表中指定形參的類型。
編譯器錯誤 C2082 錯誤消息
形參「identifier」的重定義
在函數體中重新聲明了函數的形參。若要解決該錯誤,請移除該重定義。
編譯器錯誤 C2083 錯誤消息
結構/聯合比較非法
結構或聯合直接與另一個用戶定義的類型進行比較。這是不允許的,除非已經定義了比較運算
符或者存在到標量類型的轉換。
編譯器錯誤 C2084 錯誤消息
函數「function」已有主體
函數已經定義。
在以前的 Visual C++ 版本中,
•編譯器將接受解析為同一實際類型的多個模板的專用化,盡管附加的定義將永遠不可用。現
在編譯器將檢測這些多重定義。
•__int32 和 int 已被視為單獨的類型。編譯器現在將 __int32 作為 int 的同義詞處理。這
意味著,如果函數同時在 __int32 和 int 上重載,編譯器將檢測多個定義,並提供一個錯誤。
編譯器錯誤 C2085 錯誤消息
「identifier」: 不在形參表中
該標識符在函數定義中聲明而未在形參表中聲明。(僅用於 ANSI C)
編譯器錯誤 C2086 錯誤消息
「identifier」: 重定義
多次定義了該標識符,或者後面的聲明與前一個不同。
C2086 也可能是增量編譯引用的 C# 程序集的結果。重新生成該 C# 程序集以解決此錯誤。
編譯器錯誤 C2087 錯誤消息
「identifier」: 缺少下標
具有多個下標的數組的定義缺少大於 1 的維度的下標值。
編譯器錯誤 C2088 錯誤消息
「operator」: 對於「class-key」非法
沒有為結構或聯合定義該運算符。該錯誤只對 C 代碼有效。
編譯器錯誤 C2089 錯誤消息
「identifier」:「class-key」太大
指定的結構或聯合超過 4GB 的**。
編譯器錯誤 C2090 錯誤消息
函數返回數組
函數不能返回數組。請返回指向數組的指針。
編譯器錯誤 C2091 錯誤消息
函數返回函數
函數不能返回函數。請返回指向函數的指針。
編譯器錯誤 C2092 錯誤消息
「array name」數組元素類型不能是函數
不允許使用函數數組。請使用指向函數的指針的數組。
編譯器錯誤 C2093 錯誤消息
「variable1」: 無法使用自動變數「variable2」的地址初始化
在用 /Za 編譯時,程序試圖將自動變數的地址用作初始值設定項。
編譯器錯誤 C2094 錯誤消息
標簽「identifier」未定義
goto 語句使用的標簽在函數中不存在。
編譯器錯誤 C2095 錯誤消息
「function」: 實參具有類型「void」:「number」參數
傳遞給函數的參數為 void 類型,這是不允許的。請改為使用指向 void 的指針 (void *)。
number 指示哪一個參數為 void。
編譯器錯誤 C2097 錯誤消息
非法的初始化
通過檢查下面的可能原因進行修復
1.使用非常數值初始化變數。
2.用長地址初始化短地址。
3.在用 /Za 編譯時,用非常數表達式初始化局部結構、聯合或數組。
4.用包含逗號運算符的表達式初始化。
5.用既非常數又非符號的表達式初始化。
編譯器錯誤 C2099 錯誤消息
初始值設定項不是常數
此錯誤只由 C 編譯器發出,而且只對非自動變數發生。編譯器在程序的開頭對非自動變數進
行初始化,並且用於對這些變數進行初始化的值必須是常數。
由於編譯時與運行時的浮點精度環境設置(有關更多信息,請參見 _controlfp_s)可能不同
,因此,編譯器無法在 /fp:strict 下對表達式執行常數合並。在這種情況下,也可能發生 C2099。
當常數合並失敗時,編譯器調用動態初始化,這在 C 中是不允許的。
要解決此錯誤,請將模塊編譯為 .cpp 文件或對表達式進行簡化。
6. iar軟體里cannot open source file "common.h",跟著野火k60教程學習,配置完編譯就一堆錯,都是這種
這是編譯器報錯提示「找不到common.h的頭文件」,這種情況一般是你的commonl.h的頭文件不在IAR默認的include PATH路徑中,解決很簡單,你只需要給編譯器的include PATH 添加一下你的這些自定義頭文件路徑就可以了。IAR沒用過,不過主流的編譯器include路徑配置一般都在工程的選項配置菜單中,你仔細找找好了。
注意: 工程文件的路徑中 不要包含漢字等內容(採用全英文路徑是個好的軟體工程管理習慣),以免編譯器不識別。
7. 錯誤類型:Microsoft VBScript 編譯器錯誤(0x800A0401)語句未結束
VBScript 對字元串變數賦值,等號右邊應該用雙引號括起來的。
你的可以修改成:
MM_chat_STRING=「Provider=Microsoft.Jet.Oledb.4.0;Data Source=E:\chat\chat.mdb」
還有另外的方法,使用的是server.MapPath方法獲取asp網站相對目錄中資料庫的絕對路徑,這樣網站在上傳至伺服器發布時不需要更新此處的路徑了。
tr_conn = "provider = microsoft.jet.oledb.4.0;data source = " & server.MapPath("/Data/#EnterPriseCMS#.mdb")
8. C++中ofstream寫報錯,誰幫我看下
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ofstream outfile ( "5.txt" );
if ( ! outfile ) {
cerr << "unable to open outfile!\n";
}
else{
string str("hello world!!");
cout << str;
}
return 0;
}
你把5.TXT放在程序的那個文件夾就能打開了
9. 「/」應用程序中的伺服器錯誤。 ----------------------------------------------------------------------
使用Windows操作系統的人有時會遇到這樣的錯誤信息:
「「0X????????」指令引用的「0x00000000」內存,該內存不能為「read」或「written」」,然後應用程序被關閉。
如果去請教一些「高手」,得到的回答往往是「Windows就是這樣不穩定」之類的義憤和不屑。其實,這個錯誤並不一定是Windows不穩定造成的。本文就來簡單分析這種錯誤的一般原因。
一、應用程序沒有檢查內存分配失敗
程序需要一塊內存用以儲存數據時,就需要使用操作系統提供的「功能函數」來申請,如果內存分配成功,函數就會將所新開辟的內存區地址返回給應用程序,應用程序就可以通過這個地址使用這塊內存。這就是「動態內存分配」,內存地址也就是編程中的「游標」。內存不是永遠都招之即來、用之不盡的,有時候內存分配也會失敗。當分配失敗時系統函數會返回一個0值,這時返回值「0」已不表示新啟用的游標,而是系統向應用程序發出的一個通知,告知出現了錯誤。作為應用程序,在每一次申請內存後都應該檢查返回值是否為0,如果是,則意味著出現了故障,應該採取一些措施挽救,這就增強了程序的「健壯性」。若應用程序沒有檢查這個錯誤,它就會按照「思維慣性」認為這個值是給它分配的可用游標,繼續在之後的執行中使用這塊內存。真正的0地址內存區儲存的是計算機系統中最重要的「中斷描述符表」,絕對不允許應用程序使用。在沒有保護機制的操作系統下(如DOS),寫數據到這個地址會導致立即當機,而在健壯的操作系統中,如
Windows等,這個操作會馬上被系統的保護機制捕獲,其結果就是由操作系統強行關閉出錯的應用程序,以防止其錯誤擴大。這時候,就會出現上述的「寫內存」錯誤,並指出被引用的內存地址為「0x00000000」。內存分配失敗故障的原因很多,內存不夠、系統函數的版本不匹配等都可能有影響。因此,這種分配失敗多見於操作系統使用很長時間後,安裝了多種應用程序(包括無意中「安裝」的病毒程序),更改了大量的系統參數和系統檔案之後。
二、應用程序由於自身BUG引用了不正常的內存游標
在使用動態分配的應用程序中,有時會有這樣的情況出現:程序試突讀寫一塊「應該可用」的內存,但不知為什麼,這個預料中可用的游標已經失效了。有可能是「忘記了」向操作系統要求分配,也可能是程序自己在某個時候已經注銷了這塊內存而「沒有留意」等等。注銷了的內存被系統回收,其訪問權已經不屬於該應用程序,因此讀寫操作也同樣會觸發系統的保護機制,企圖「違法」的程序唯一的下場就是被操作終止執行,回收全部資源。計算機世界的法律還是要比人類有效和嚴厲得多啊!像這樣的情況都屬於程序自身的BUG,你往往可在特定的操作順序下重現錯誤。無效游標不一定總是0,因此錯誤提示中的內存地址也不一定為「0x00000000」,而是其它隨機數字。如果系統經常有所提到的錯誤提示,下面的建議可能會有說明
:
1.檢視系統中是否有木馬或病毒。這類程序為了控制系統往往不負責任地修改系統,
從而導致操作系統異常。平常應加強信息安全意識,對來源不明的可執行程序絕不好奇。
2.更新操作系統,讓操作系統的安裝程序重新拷貝正確版本的系統檔案、修正系統參數。
有時候操作系統本身也會有BUG,要注意安裝官方發行的升級程序。
3.試用新版本的應用程序。
Mode:
將虛擬內存撤換
答案:
目前為止是肯定的,也就是如在下次冷天到來時亦沒再發生,就代表這是主因
追加:
如果你用
Ghost 恢復 OS 後建議 刪除WINDOWS\PREFETCH目錄下所有*.PF文件因為需讓windows重新收集程序的物理地址
有些應用程序錯誤
"0x7cd64998" 指令參考的 "0x14c96730" 內存。該內存不能為 "read"推論是此原因
源由:
Win
XP的「預讀取」技術
這種最佳化技術也被用到了應用軟體上,系統對每一個應用軟體的前幾次啟動情況進行分析,然後新增一個描述套用需求的虛擬「內存映像」,並把這些信息儲存到
WINDOWSPREFETCH數據夾。一旦建立了映像,應用軟體的裝入速度大大提高。XP的預讀取數據儲存了最近8次系統啟動或應用軟體啟動的信息。
後敘:
目前此方法亦是獨步網路的(其碼自己針對此問題查了許久),也是常見問題,原本幾乎每天睡前關閉軟體時一些程序都會發生...read...
現在就沒發生了。
【文章二】
運行某些程序的時候,有時會出現內存錯誤的提示(0x後面內容有可能不一樣),然後該程序就關閉。
「0x????????」指令引用的「0x????????」內存。該內存不能為「read」。
「0x????????」指令引用的「0x????????」內存,該內存不能為「written」。
不知你出現過類似這樣的故障嗎?
一般出現這個現象有方面的,一是硬體,即內存方面有問題,二是軟體,這就有多方面的問題了。
下面先說說硬體:
一般來說,內存出現問題的可能性並不大,主要方面是:內存條壞了、內存質量有問題,還有就是2個不同牌子不同容量的內存混插,也比較容易出現不兼容的情況,同時還要注意散熱問題,特別是超頻後。你可以使用MemTest
這個軟體來檢測一下內存,它可以徹底的檢測出內存的穩定度。
假如你是雙內存,而且是不同品牌的內存條混插或者買了二手內存時,出現這個問題,這時,你就要檢查是不是內存出問題了或者和其它硬體不兼容。
如果都沒有,那就從軟體方面排除故障了。
先簡單說說原理:內存有個存放數據的地方叫緩沖區,當程序把數據放在其一位置時,因為沒有足夠空間,就會發生溢出現象。舉個例子:一個桶子只能將一斤的水,當你放入兩斤的水進入時,就會溢出來。而系統則是在屏幕上表現出來。這個問題,經常出現在windows2000和XP系統上,Windows
2000/XP對硬體的要求是很苛刻的,一旦遇到資源死鎖、溢出或者類似Windows
98里的非法操作,系統為保持穩定,就會出現上述情況。另外也可能是硬體設備之間的兼容性不好造成的。
下面我從幾個例子給大家分析:
例一:打開IE瀏覽器或者沒過幾分鍾就會出現"0x70dcf39f"指令引用的"0x00000000"內存。該內存不能為「read」。要終止程序,請單擊「確定」的信息框,單擊「確定」後,又出現「發生內部錯誤,您正在使用的其中一個窗口即將關閉」的信息框,關閉該提示信息後,IE瀏覽器也被關閉。解決方法:修復或升級IE瀏覽器,同時打上補丁。看過其中一個修復方法是,Win2000自升級,也就是Win2000升級到Win2000,其實這種方法也就是把系統還原到系統初始的狀態下。比如你的IE升級到了6.0,自升級後,會被IE5.0代替。
例二:在windows
xp下雙擊光碟裡面的「AutoRun.exe」文件,顯示「0x77f745cc」指令引用的「0x00000078」內存。該內存不能為
「written」,要終止程序,請單擊「確定」,而在Windows
98里運行卻正常。解決方法:這可能是系統的兼容性問題,winXP的系統,右鍵「AutoRun.exe」文件,屬性,兼容性,把「用兼容模式運行這個程序」項選擇上,並選擇「Windows
98/Me」。win2000如果打了SP的補丁後,只要開始,運行,輸入:regsvr32
c:\winnt\apppatch\slayerui.dll。右鍵,屬性,也會出現兼容性的選項。
例三:RealOne
Gold關閉時出現錯誤,以前一直使用正常,最近卻在每次關閉時出現「0xffffffff」指令引用的「0xffffffff」內存。該內存不能為 「read」
的提示。解決方法:當使用的輸入法為微軟拼音輸入法2003,並且隱藏語言欄時(不隱藏時沒問題)關閉RealOne就會出現這個問題,因此在關閉RealOne
之前可以顯示語言欄或者將任意其他輸入法作為當前輸入法來解決這個問題。
例四:我的豪傑超級解霸自從上網後就不能播放了,每次都提示
「0x060692f6」(每次變化)指令引用的「0xff000011」內存不能為「read」,終止程序請按確定。解決方法:試試重裝豪傑超級解霸,如果重裝後還會,到官方網站下載相應版本的補丁試試。還不行,只好換就用別的播放器試試了。
例五:雙擊一個游戲的快捷方式,「0x77f5cd0」指令引用「0xffffffff」內
存,該內存不能為「read」 ,並且提示Client.dat程序錯誤。
解決方法:重裝顯卡的最新驅動程序,然後下載並且安裝DirectX9.0。
例六:一個朋友發信息過來,我的電腦便出現了錯誤信息:「0x772b548f」指令引用的「0x00303033」內存,該內存不能為
「written」,然後QQ自動下線,而再打開QQ,發現了他發過來的十幾條的信息。解決方法:這是對方利用QQ的BUG,發送特殊的代碼,做QQ出錯,只要打上補丁或升級到最新版本,就沒事了。
【原因
解決方法】
1 內存條壞了 更換內存條
2 雙內存不兼容 使用同品牌的內存或只要一條內存
3 內存質量問題 更換內存條
4 散熱問題
加強機箱內部的散熱
5 內存和主板沒插好或其他硬體不兼容 重插內存或換個插槽
6 硬體有問題 更換硬碟
7 驅動問題
重裝驅動,如果是新系統,應先安裝主板驅動
8 軟體損壞 重裝軟體
9 軟體有BUG 打補丁或更新到最新版本
10 軟體和系統不兼容
給軟體打上補丁或是試試系統的兼容模式
11 軟體和軟體之間有沖突 如果最近安裝了什麼新軟體,卸載了試試
12 軟體要使用其他相關的軟體有問題
重裝相關軟體,比如播放某一格式的文件時出錯,可能是這個文件的解碼器有問題
13 病毒問題 殺毒
14 殺毒軟體與系統或軟體相沖突
由於殺毒軟體是進入底層監控系統的,可能與一些軟體相沖突,卸載試試
15 系統本身有問題
有時候操作系統本身也會有BUG,要注意安裝官方發行的更新程序,象SP的補丁,最好打上.如果還不行,重裝系統,或更換其他版本的系統。
〔又一說〕
在控制面板的添加/刪除程序中看看你是否安裝了微軟NET.Framework,如果已經安裝了,可以考慮卸載它,當然如果你以後在其它程序需要NET.Framework時候,可以再重新安裝。
另外,如果你用的是ATI顯卡並且你用的是SP2的補丁(一些ATI的顯卡驅動需要在NET.Framework正常工作的環境下)。這種情況你可以找一款不需要NET.Framework支持的ATI顯卡驅動。
如果以上兩種方法並不能完全解決問題,你試著用一下「IE修復」軟體,並可以查查是否有病毒之類的。
〔微軟NET.Framework升級到1.1版應該沒問題了〕
〔還有一說〕
方法一:
微軟新聞組的朋友指點:開始--運行:regsvr32
jscript.dll
開始--運行:regsvr32
vbscript.dll
不過沒解決---但提供了路子-----一次運行注冊所有dll
搜索查找到方法如下:
運行 輸入cmd
回車在命令提示符下輸入
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s
%1
這個命令老兄你慢慢輸 輸入正確的話會看到飛快地滾屏 否則……否則失敗就是沒這效果。回車後慢慢等(需要點時間1-2分鍾)
都運行完再打開看
方法二:
這是個典型問題~~~~~引起這個問題的原因很多。一般來講就是給系統打上補丁和更換內存、給內存換個插槽這3種方法來解決。[系統補丁只要到Microsoft
Update網站在線更新就可以了]
(偶見)
造成這種問題的原因很多,不能單純的下結論,盡量做到以下幾點可能對你有幫助:
1。確保使用的是未修改過的軟體(非漢化、破解版)
2。使用改軟體時盡量不要運行其他軟體。(這是個臨時文件,可能某些軟體也在使用臨時文件夾,所以產生干擾)
3。把那些什麼桌面工具,內存整理工具通通關掉(你至少有2個類似的工具在運行)」
處理方法:
運行regedit進入注冊表,
在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
下,應該只有一個正常的鍵值"{AEB6717E-7E19-11d0-97EE-00C04FD91972},
將其他的刪除。
〔我個人的最後解決和看法〕
我今天嘗試了多種辦法,最後我發現問題出在微軟的NET.Framework上面。我升級了這個軟體,並打齊了補丁,短暫平安後,有出現「內存不能為read」的情況。後來我受上面文章的啟發,卸載了微軟的NET.Framework1.0和1.1,世界太平了。
另外:如果是打開「我的電腦」、「我的文檔」等的時候出現上述情況,還有一種可能,就是你的右鍵菜單太臃腫了,此時只要清理右鍵菜單問題就解決了。
--------------------------------------------------------------------------------
〔試驗的結果〕
上面的方法,最管用、最徹底的方法是這個:
運行
輸入cmd 回車在命令提示符下輸入
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s
%1
【技巧】如果怕輸入錯誤的話,可以復制這條指令,然後在命令提示框點擊左上角的c:\,使用下面的「編輯-粘貼」功能就不容易輸錯了。在飛速滾屏完全靜止之後,別著急啟動其他程序,先耐心等一會兒,因為此時dll們還在找位置。直到你的指示燈不閃了再做別的
10. 飛思卡爾 單片機 在編程的時候遇到 絕對地址出錯 illegal absolute address 是怎麼回事
可能是數值超范圍了吧