小编Kir*_*sky的帖子

命名临时局部变量的约定

在本地函数中命名临时变量的标准方法是什么?让我举一个例子说明我在做什么.我得到一个结构的指针,所以我想在本地存储其成员之一,以避免被引用,然后任何修改分配回指针.

更具体一点:

struct  Foo
{
  double m_d;

};


void function (Foo* f)
{
   double tmp=f->m_d;

       /***Other stuff***/

     f->m_d=tmp;
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢tmp.如果我在一个函数中有很多它们,它们只会增加混乱.

谢谢

c c++ naming-conventions

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

几个Direct3D设备和Intel GMA945

我创建了16个Direct3D设备,大小约为320x200像素.我每40毫秒在一个单独的线程中为每个设备调用IDirect3DDevice9 :: Present.如果显示系统工具提示或开始菜单,则在使用Windows XP和集成英特尔GMA945图形的笔记本电脑上,部分设备不会更新.IDirect3DDevice9 :: Present当时没有返回任何错误代码,在程序中一切看起来都很好,但用户可以看到移动几个设备冻结.可能是什么原因?

这在具有相同硬件的Windows 7和在具有不同硬件的Windows XP上工作正常,因此仅与此组合有关的问题.我应该支持这一点,因为我的客户正在使用硬件和操作系统的这种组合.MSDN没有说我应该只创建一个D3D设备(至少我找不到它)所以问题应该在其他地方.

我想要找到的是,可能有一些标志组合可以解决我的问题.目前我使用以下内容:

D3DPRESENT_PARAMETERS param = {};
param.Windowed = TRUE;    
param.SwapEffect = D3DSWAPEFFECT_DISCARD;   
param.hDeviceWindow = GetSafeHwnd();
param.BackBufferCount = 1;
param.BackBufferFormat = D3DFMT_UNKNOWN;
param.BackBufferWidth = m_szDevice.Width;
param.BackBufferHeight = m_szDevice.Height;
param.MultiSampleType = D3DMULTISAMPLE_NONMASKABLE;
param.Flags = D3DPRESENTFLAG_VIDEO;
param.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
param.MultiSampleType = D3DMULTISAMPLE_NONE;
param.MultiSampleQuality = 0;
Run Code Online (Sandbox Code Playgroud)

c++ directx graphics windows-xp direct3d

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

引用和引用传递参数之间的C++差异

我的问题涉及继承自ifstream的Bifstream的以下成员函数.Read需要一个char指针.我给它(char*)和目标.target是一个引用,所以我给它的是对int的引用的引用.为什么这样做?

bool cBifstream::ReadInt( int& target ){
    if( !this->is_open() ){
        return false;
    }
    this->read( (char*)&target, sizeof(int) );
}
Run Code Online (Sandbox Code Playgroud)

这是我使用的其他工作代码的片段.

int size;
is.read((char*)&size, sizeof(int));
Run Code Online (Sandbox Code Playgroud)

语法是相同的,但这次变量是一个int而不是对int的引用.

目标声明:

cBifstream a("test2");
int b;
a.ReadInt(b);
Run Code Online (Sandbox Code Playgroud)

编辑:谢谢你的回复.我还是不明白一件事.

this->read( (char*)target, sizeof(int) );  (all i did here was remove the ampersand)
Run Code Online (Sandbox Code Playgroud)

此更改导致我的程序崩溃.但是target是对int的引用,所以上面应该有效

int size;
is.read((char*)&size, sizeof(int));
Run Code Online (Sandbox Code Playgroud)

作品.

c++ arguments reference

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

使用php加密密码

我需要加密密码并将其存储在数据库中.我添加了一个代码"$ newpass = md5($ pass_word);" 在PHP文件中.但仍然无法正常工作

<?php
$hostname   =   "xxxx";
$username   =   "xxxx";
$password   =   "xxxx";
$dbName     =   "xxxx";
$user_name='';
$pass_word='';
$email='';
$errormsg='';
$subject='';
$message='';
$newpass='';
$conn       =   mysql_connect($hostname,$username,$password) or die(mysql_error());
mysql_select_db($dbName);
if(isset($_POST["submit"]))
{
$user_name=$_POST['usr'];
$address1=$_POST['addr1']; 
$address2=$_POST['addr2'];
$pass_word=$_POST['pswd'];
$newpass= md5($pass_word); 
$email=$_POST['email'];
if(empty( $user_name))
 {
   $errormsg='<br>enter the name S';

 }
if(trim($address1)=="")
 {
   $errormsg="<br>entre the address1 S";
   //echo $errormsg;
  } 
if(trim($address2)=="")
 {
   $errormsg="<br>entre the address2 S";
   //echo $errormsg;
  } 
if(trim($pass_word)=="")
 {
   $errormsg="<br>entre the password S";
   // echo $errormsg;
  } 
if(trim($email)=="")
{
   $errormsg="<br> …
Run Code Online (Sandbox Code Playgroud)

php

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

为已分配的char数组分配值失败

我只是为一个角色分配一些内存,然后想做一些指针算法.在这种情况下,我想将'\ x0a'写入字节32,如下所示:

#define HDR_SIZE 32   

int size = 52;

unsigned char *readXPacket = (unsigned char *) malloc (size * sizeof (unsigned char));
*readXPacket + HDR_SIZE = '\x0a';
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时,我收到以下错误消息:赋值中的非值.谁知道这里有什么问题?

谢谢

c++

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

如何用Excel打开XML文件?

我想开发一个小工具,用于打开XML文件并自动启动Excel.可以非常方便地将excel文件保存为.xls格式的用户的好处.

我的开发IDE:Windows XP专业版和Visual Studio 2005.

该工具将在Windows 2000和Excel 2000上运行.并且没有安装.net框架.

这意味着我不能用C#编码.我的选择是C++.

c++ xml windows excel

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

其他人使用的头文件类文件

我想知道是否有一种方法只在头文件.h上放置受保护和公共的东西,以及编译单元.cpp中的所有私有东西我需要这个,因为该库将被其他人使用,而我不希望复制和编辑所有.h文件以删除私有声明和实现.我试过但得到了重复声明错误

另一个问题是关于私有静态的东西我可以在头文件中声明它们并在.cpp单元上实现它们吗?一个私有变量和一个公共的get方法我试过但是无法在单元上实现该方法,它只适用于头上的声明和实现

[] s,乔

c++ private header class public

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

将值的矢量复制到一行中的矢量对

我有以下类型:

struct X { int x; X( int val ) : x(val) {} };
struct X2 { int x2; X2() : x2() {} };

typedef std::pair<X, X2>      pair_t;
typedef std::vector<pair_t>   pairs_vec_t;
typedef std::vector<X>        X_vec_t;
Run Code Online (Sandbox Code Playgroud)

我需要初始化pairs_vec_t带有值的实例X_vec_t.我使用以下代码,它按预期工作:

int main()
{
  pairs_vec_t ps;
  X_vec_t xs; // this is not empty in the production code

  ps.reserve( xs.size() );

  { // I want to change this block to one line code.
    struct get_pair {
      pair_t operator()( const X& value ) { …
Run Code Online (Sandbox Code Playgroud)

c++ boost stl boost-bind

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

C++ TCHAR []到字符串

我有这个方法接收一个TCHAR szFileName[]变量的路径,其中包含类似的东西C:\app\...\Failed\

我想对它进行排序,以便我可以验证该路径上最后一个文件夹的名称是否实际上是"失败"

我认为使用这样的东西会起作用:

std::wstring Path = szFileName;

string dirpath2;
dirpath2 = Path.substr(0,5); 
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

错误6错误C2679:二进制'=':找不到运算符,它采用类型为'std :: basic_string <_Elem,_Traits,_Ax>'的右手操作数(或者没有可接受的转换)

毋庸置疑,我对C++很新,而且我一直在寻找答案,但我没有运气,所以任何帮助都会受到赞赏:)

c++ string tchar

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

C++:对函数有些困惑

#include <iostream>
using namespace std;

int myFunc (unsigned short int x );

int main ()
{
    unsigned short int x, y;
    x=7;
    y = myFunc(x);
    std::cout << "x:" << x << "y: " << y << "\n";
    return 0;
}

int myFunc (unsigned short int x )
{
    return (4 * x );
}
Run Code Online (Sandbox Code Playgroud)

现在这个^代码工作,但当我改变

y = myFunc(x);
Run Code Online (Sandbox Code Playgroud)

y = myFunc(int);
Run Code Online (Sandbox Code Playgroud)

它将不再有用,为什么呢?

c++

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