小编mgi*_*uca的帖子

如何使用C语言查找桌面路径?

任何人都可以告诉我如何使用C语言命令获取桌面路径(环境变量).

场景是我想在桌面上保存文件.我能做的只是提供固定的桌面路径和文件名来保存文件.但是在给出这个固定路径之后,我的代码将变得僵硬,并且不会在具有不同桌面路径(环境变量)的任何其他计算机上工作.我的问题是,我是否可以通过使用C语言捕获桌面的环境变量来使我的代码可以在任何基于Windows的机器上工作?

问候

c windows

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

x86实模式如何在内存<640K的机器上运行?

这个问题主要是出于历史兴趣,但我一直无法找到任何有关它的文档.我在x86实模式下可以找到的所有文档(包括英特尔手册[1]和在线存储器映​​射[2])都假定系统内​​存为640KiB.然而,最初的IBM PC只有16KiB或64KiB的RAM [3].

这是怎么回事?两个具体问题:

  1. 如果访问的内存不存在,CPU的行为如何?英特尔手册[1]指出,对于实模式,某些指令会触发#GP(一般保护故障)"如果内存操作数有效地址超出CS,DS,ES,FS或GS段限制",并且对于其他人,"如果操作数的任何部分位于从0到FFFFH的有效地址空间之外." 这似乎并不表明您可以获得#GP来访问不存在的良好寻址的内存.那么在这种情况下CPU会做什么?
  2. 根据存储器映射[2],BIOS通常将MBR加载到0x7c00,该存储器空间位于仅具有16KiB RAM的原始"廉价"IBM PC的存储器空间之外.它是如何应对这一点的?(BIOS设计最初是不是将代码加载到0x7c00?)

[1] http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

[2] http://wiki.osdev.org/Memory_Map_(x86)

[3] http://en.wikipedia.org/wiki/IBM_Personal_Computer#PC

x86 osdev x86-16

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

将C++文件包含到另一个C++文件中

我在包含我的文件时遇到了问题.我有3个C++文件,所有这些文件都是int main(void).

问题是每当我包含其中一个时它就说:

function'int main(void)'已经有了一个正文

但如果我将int main(void)删除到其他两个C++文件,这个错误现在会提示.

'one or more multiply defined symbols found'

"class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl convertInt(int)" (?convertInt@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) already defined in FormatPosDataXml().obj

"class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl convertInt(int)" (?convertInt@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) already defined in FormatPosDataXml().obj    
Run Code Online (Sandbox Code Playgroud)

等等

这是我得到的代码:

FormatPosDataXml().CPP

#include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include <cstring>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>



using namespace std;

#define nextline '\n'

inline bool TextContains(char *text, char ch) {
  while ( *text ) {
    if ( *text++ == ch …
Run Code Online (Sandbox Code Playgroud)

c++ header include

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

如何在数据库中以加密形式保存字符串(用户名密码),并在用户登录时解密

大家早上好,
我正在使用c ++并且还使用wxWidget,在后端我使用MySql,我想在数据库中以加密形式保存用户名和密码,
当用户尝试登录时,我将解密数据进行身份验证,
是c ++中有任何可以处理加密或解密的头文件吗?

c++ authentication

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

HTML5 globalCompositeOperation与剪辑

我有一个大的源图像,我想在圆圈内显示它的一小部分,使画布的一部分在圆圈之外透明.

Mozilla的指导合成与HTML5包括两个主题:globalCompositeOperationclip.看起来这两个都会让我做我想做的事情,所以我想知道每个的缺点是什么,我应该使用哪些.

我可以设置globalCompositeOperationsource-atop(或者source-in,但在WebKit似乎有些错误).然后让目标画布透明,带有黑色圆圈,然后简单地在其上绘制源图像.这将确保仅填充圆形部分.

或者,我可以绘制一个圆形路径并用于clip定义剪切区域,然后在其上绘制源图像,这也应该确保只填充圆形部分(事实上,Mozilla的页面上面甚至有一个做漂亮的例子)很多明星).

  1. 这两种技术都会像我说的那样有效,还是我错过了什么?
  2. 如果是这样的话,是否有任何重要的问题与这些技术中的任何一个明显优于另一个?
  3. 如果不是,哪一个一般有更好的表现?

我(纯粹推测性地)想象globalCompositeOperation会有更好的性能,因为它是在每像素级别上应用操作,而clip操作需要进行多边形交叉.但这只是一种预感.

html5 canvas

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

标签 统计

c++ ×2

authentication ×1

c ×1

canvas ×1

header ×1

html5 ×1

include ×1

osdev ×1

windows ×1

x86 ×1

x86-16 ×1