Windows下開發中遇到問題的解決方案彙總

1,Visual Studio中報這個錯誤:Project : error PRJ0002 : Error result 31 returned from 'C:/Program Files/Microsoft SDKs/Windows/v6.0A/bin/mt.exe'.

如下方法解決:Properties -> Configuration Properties -> Linker -> Manifest File, set Generate Manifest to No.

 

2,Visual Studio編譯成功,運行時報這個錯誤:

沒有找到MSVCR90.dll,因此這個應用程序未能啓動,重新安裝應用程序可能會修復此問題

    解決方法是, 項目-->C++-->代碼生成 下的 運行時庫 項目


 Multi-threadedDebug DLL (/MDd)  改爲   Multi-threaded Debug(/MTd)

 

     因爲 Multi-threaded Debug DLL (/MDd) 需要項目建立者相同的MSVCR.dll庫,而我們的系統中的DLL可能不同,因此報告上述錯誤。改成後面的選項後就可以運行了。

 

 

3,mysql語法錯誤。

如,我的一個表叫做server_sysconf,字段有id,key,value,desc。id是自增字段。其他字段都是字符串字段。

insert into server_sysconf (key,value) values (“11”,“11”)  報告語法錯誤。 查看SQL語法書和MySQL的手冊也沒發現有什麼錯誤。

      經過多次嘗試後,發現如下語法就對了。

<!--@page { margin: 2cm }P { margin-bottom: 0.21cm }-->

insert into server_sysconf(server_sysconf.key,server_sysconf.value) values(“11”,“11”)

      mysql要求字段名都要加上表名作爲前綴。或者表名的別名作爲前綴。  類似面向對象編程中,類的屬性  的寫法。

    另外,mysql中字符串 可以是“”或者‘’包圍。這和JavaScript,Python的語法一致。

     上面直接寫上數字,不加引號,mysql也不會報錯。

 

 

Windows不能識別其他操作系統的分區,格式化分區需注意

 

     Windows不能識別其他操作系統的分區。如果需要格式化Windows不能識別的分區交給Windows使用,需要注意這個分區前面有沒有Windows未能識別的分區。因爲Windows默認的disk manager工具,如果不能識別分區的格式,它不能格式化這個分區,而是隻能刪除該分區,然後再格式化。

     因此,如果這個分區的前面還有一個Windows不能識別的分區,那麼delete後面的分區,會造成兩個分區合併!這可能不是你希望的結果。會造成前面的分區的數據丟失!

windows.h

     Windows下開發,經常需要#include "windows.h" 。這個文件中定義了很多Windows下的數據類型等。 如:

typedef unsigned long       DWORD;

typedef int                 BOOL;

typedef unsigned char       BYTE;

typedef unsigned short      WORD;

typedef float               FLOAT;

typedef FLOAT               *PFLOAT;

typedef BOOL near           *PBOOL;

typedef BOOL far            *LPBOOL;

typedef BYTE near           *PBYTE;

typedef BYTE far            *LPBYTE;

typedef int near            *PINT;

typedef int far             *LPINT;

typedef WORD near           *PWORD;

typedef WORD far            *LPWORD;

typedef long far            *LPLONG;

typedef DWORD near          *PDWORD;

typedef DWORD far           *LPDWORD;

typedef void far            *LPVOID;

typedef CONST void far      *LPCVOID;

 

typedef int                 INT;

typedef unsigned int        UINT;

typedef unsigned int        *PUINT;

    等等。

 Eclipse的工作空間正在使用

而實際上並沒有其他eclipse實例使用該空間。此時,查看該workspace下的.metadata目錄,把.lock文件刪除,即可!

因爲eclipse打開一個工作空間時查看是否有.lock文件,如果有,就提示上述錯誤。如果沒有就自己創建一個。eclipse正常退出時會刪除該文件。eclipse被殺死,就會造成上述問題。

總之,eclipse使用.lock文件實現工作空間的單例,它是把文件當作一個鎖來使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章