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文件实现工作空间的单例,它是把文件当作一个锁来使用。