小编Ash*_*ppa的帖子

Visual C++:将传统的C和C++字符串代码迁移到Unicode世界

我看到Visual Studio 2008及更高版本现在开始使用字符集设置为Unicode的新解决方案.我的旧C++代码只处理英文ASCII文本,并且满是:

  • 文字字符串就像 "Hello World"
  • char 类型
  • char * 指向已分配的C字符串的指针
  • STL string 类型
  • 转换STL string为C字符串,反之亦然,使用STL string构造函数(接受const char *)和STL string.c_str()

    1. 我需要对迁移此代码进行哪些更改,以便它在Visual Studio Unicode和Unicode启用的库的生态系统中工作?(我不需要它同时使用ASCII和Unicode,它可以是纯Unicode.)

    2. 是否也可以以独立于平台的方式执行此操作?(即,不使用Microsoft类型.)

我看到很多广泛的字符和Unicode类型和转换散落在周围,因此我的困惑.(例如:wchar_t,TCHAR,_T,_TEXT,TEXT等)

c c++ string unicode

13
推荐指数
3
解决办法
1万
查看次数

如何使用另一个数组创建和初始化数组?

要使用另一个数组创建和初始化数组,我目前执行此操作:

void Foo( int[] a )
{
    int[] b = new int[ a.Length ];
    for ( int i = 0; i < a.Length; ++i )
        b[ i ] = a[ i ];

    // Other code ...
}
Run Code Online (Sandbox Code Playgroud)

在C#中使用更短或更惯用的方法吗?

如果可以在单个语句中完成,例如在C++中,那将是很好的:

vector<int> b( a );
Run Code Online (Sandbox Code Playgroud)

如果这不能在一个声明中完成,我将采取我得到的:-)

c# arrays

13
推荐指数
2
解决办法
3万
查看次数

从Cygwin下的OpenGL开始

是否有可能从Cygwin下编译和运行OpenGL程序?如果有,怎么样?

opengl cygwin

12
推荐指数
1
解决办法
2万
查看次数

CUDA编译器(nvcc)宏

是否有我可以使用的CUDA的#define编译器(nvcc)宏?(如_WIN32 for Windows等.)

我需要这个头文件代码,这在nvcc和VC++编译器之间是常见的.我知道我可以继续定义我自己的并将其作为参数传递给nvcc编译器(-D),但是如果已经定义了它会很好.

c++ macros cuda nvcc c-preprocessor

12
推荐指数
1
解决办法
8147
查看次数

C++ STL:哪种迭代方法比STL容器更好?

这对你们中的一些人来说可能看起来很无聊,但是对于STL容器,以下哪两种迭代方法更好?为什么

class Elem;
typedef vector<Elem> ElemVec;
ElemVec elemVec;

// Method 0
for (ElemVec::iterator i = elemVec.begin(); i != elemVec.end(); ++i)
{
    Elem& e = *i;
    // Do something
}

// Method 1
for (int i = 0; i < elemVec.size(); ++i)
{
    Elem& e = elemVec.at(i);
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

方法0似乎更清晰STL,但方法1使用较少的代码实现相同.在容器上简单重复的事情似乎在以任何源代码的地方.所以,我倾向于选择方法1,这似乎可以减少视觉混乱和代码大小.

PS:我知道迭代器可以做的不仅仅是一个简单的索引.但是,请将回复/讨论集中在如上所示的容器上的简单迭代上.

c++ containers iterator stl

12
推荐指数
4
解决办法
3335
查看次数

C/C++:如何找出给定定义的头文件链?

在Visual C++,可以发现,其中任何头文件(变量或类型)定义通过按F12在其上或选择转到定义.此功能非常有用,但它仅显示定义名称的最终位置(头文件).有没有办法找出从我的源文件到给定名称的最终头文件的头文件

例如,考虑以下代码:

// main.cpp    
#include <stddef.h>
int main()
{
    size_t s;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在Visual C++ 2010中,如果我查看size_t上面的定义main.cpp,它会将我置于一个名为的文件中sourceannotations.h.我知道这个标题链以stddef.h(我已经包含)开头并以结尾sourceannotations.h.如何弄清楚这个链中间的链接?

c c++ header visual-studio visual-c++

12
推荐指数
1
解决办法
3014
查看次数

用于学习非CS /数学学位的算法的资源

我被要求推荐一种资源(在线,书籍或教程)来学习非CS或数学专业的算法(在麻省理工学院的算法简介的意义上).显然麻省理工学院的书太过复杂,而且一些较轻的处理方法(如OReilly的Nutshell算法)似乎仍然需要在算法分析方面有一些背景知识.是否有资源以某种方式呈现材料,使得没有理论计算机科学背景的开发人员会觉得有用?

algorithm

12
推荐指数
1
解决办法
4138
查看次数

NVIDIA CUDA:什么是开发人员驱动程序?

要开发NVIDIA CUDA程序,所需的工具是:

  1. 开发人员驱动
  2. CUDA工具包
  3. GPU计算SDK

这是什么开发的驱动程序?以静默方式安装它会覆盖已安装的任何NVIDIA 图形驱动程序.那么,开发人员驱动程序与通常的NVIDIA显卡驱动程序有何不同?它包含哪些额外的组件或功能?

开发人员驱动程序有32位和64位两种版本.如果我在64位Windows 7上开发32位Visual C++/CUDA项目,我选择哪种开发者驱动程序?为什么?

drivers cuda nvidia

12
推荐指数
1
解决办法
8105
查看次数

JavaScript:适用于Windows的独立编译器或解释器?

什么是适用于WindowsJavaScript编译器或解释器?

我最近读过Eloquent JavaScript这本书.本书介绍了使用JavaScript作为第一语言编程的读者.遗憾的是,程序仅限于在嵌入HTML的浏览器中运行.所以,我想知道是否可以编写可以独立执行的JavaScript程序.

编译器或解释器应该可以作为预编译的二进制文件轻松使用,可以由初学者下载和安装.他应该能够编写使用此编译器编译的简单独立JavaScript程序.可以使用此编译器的其他JavaScript库,框架,IDE和调试支持将是一个优势.

javascript windows

12
推荐指数
3
解决办法
4万
查看次数

Thrust:如何从主机阵列创建device_vector?

我从主机上的库中获取一些数据作为指向数组的指针.如何创建在设备上保存此数据的device_vector?

int* data;
int num;
get_data_from_library( &data, &num );

thrust::device_vector< int > iVec; // How to construct this from data?
Run Code Online (Sandbox Code Playgroud)

cuda thrust

12
推荐指数
1
解决办法
6209
查看次数