`
wangxiaohigh
  • 浏览: 1423434 次
文章分类
社区版块
存档分类
最新评论

C#和C++编程学习中的个案小总结—— 时刻更新ing

 
阅读更多

一、error PRJ0003 : 生成 cmd.exe 时出错

Visual Studio 2005调试程序时老是提示"生成“cmd.exe”时出错".

------ 已启动生成: 项目: bstore, 配置: Debug Win32 ------
正在编译资源清单...
正在链接...
正在嵌入清单...
项目 : error PRJ0003 : 生成“cmd.exe”时出错。
生成日志保存在“file://e:\来自C盘\我的文档\Visual Studio 2005

\Projects\bstore\bstore\Debug\BuildLog.htm”
first - 1 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========

直接Visual Studio 2005中进行如下设置:

tools= > Options = > Projects and Solutions - > VC++ Directories page

把$(PATH)改成:$(SystemRoot)\System32;$(SystemRoot) ;$(SystemRoot)\System32\wbem

------ 已启动生成: 项目: bstore, 配置: Debug Win32 ------
正在嵌入清单...
生成日志保存在“file://e:\来自C盘\我的文档\Visual Studio 2005

\Projects\bstore\bstore\Debug\BuildLog.htm”
0727 - 0 个错误,0 个警告
========== 生成: 1 已成功, 0 已失败, 0 最新, 0 已跳过 ==========

二、加载库文件

右击红色笔圈住的项目名,点击“属性”后显示如下图:

在“链接器---输入--附加依赖项”中添加lib文件名称,点击“确定”。

三、cin,cout的头文件在VS2005中就必须写上#include<iostream>

下述三句都是必须的:

#include<windows.h>

#include "iostream"
using namespace std;

四、VS2005中加载动态链接库(C++语言)

目前正在学习动态库编程,学习网址有:
1、在利用loadlibrary显示装载某动态库的时候,代码如下: HINSTANCEhDLL =LoadLibrary("MyClient.dll");
编译器报错:error C2664: 'LoadLibraryW' : cannot convert parameter 1 from 'const char [13]' to 'LPCWSTR'
2、我将代码改为:HINSTANCEhDLL =LoadLibrary(LPCWSTR("MyClient.dll"));
结果hDll显示为零,表明加载不成功。
3、再将代码改为:HINSTANCEhDLL =LoadLibrary(TEXT("MyClient.dll"));
结果hDll不为零,加载成功。
4、还可以将代码改为:HINSTANCE hDLL = LoadLibraryA("TZClient.dll");
结果hDll不为零,加载成功。
5、还可以将代码改为:HINSTANCE hDLL = LoadLibraryW(_T("TZClient.dll"));
结果hDll不为零,加载成功。
备注:
1、LoadLibraryA使用LPCSTR作为参数类型,它即为窄字符串(A代表ANSI)
2、LoadLibraryW使用LPCWSTR作为参数类型,它即为宽字符串(W代表WIDEN)
3、dll文件必须在项目的debug目录下,否则dll加载不会成功。
4、VisualC++里边定义字符串的时候,用_T来保证兼容性,VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。
五、#region与#endregion

region表示代码段的开始,与之相对的是#endregion,需成对出现。

#region与#endregion之间的代码可以折叠或打开^_^。

这样就可以给调试的不同阶段的代码屏蔽与阅读带来极大的方便!例如将某个已被替换的功能模块或函数折叠起来,这样不会占位置,以后需要的时候还可以参考!

六、怎样理解下述语句(C#)

byte[] cmd = new byte[16];

short type = 1;

int port = ((IPEndPoint)mListener.LocalEndpoint).Port;

BitConverter.GetBytes(type).CopyTo(cmd, 0);

BitConverter.GetBytes(port).CopyTo(cmd, 2);

正解:将type转换成字节数组,然后从字节数组的第0个索引开始copy到cmd变量中;将port转换成字节数组,然后从字节数组的第2个索引开始copy到cmd变量中。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics