小编coo*_*roc的帖子

结构的构造函数,不执行任何操作

编辑:为了清楚,结构没有做任何事情,因为它没有任何功能.我想我给人的印象是我认为使用初始化列表并将构造函数的主体留空是问题.

假设我使用结构来保存两个值,我有一个构造函数,所以我可以创建一个像这样的任意结构:

struct twoValues
{
    int x;
    int y;

    twoValues(int x_, int y_):y(y_),x(x_)
    {}
};

someFunction(twoValues(1,2));
Run Code Online (Sandbox Code Playgroud)

这使我不必这样做:

twoValues anInstance;
anInstance.x=1;
anInstance.y=2;
someFunction(anInstance);
Run Code Online (Sandbox Code Playgroud)

编辑:你们都是正确的,我也可以用以下内容初始化:

twoValues anInstance = {1,2};
Run Code Online (Sandbox Code Playgroud)

我认为没有错,但我从C++测试得到了一些反馈,其中一个负反馈标记是"没有做任何事情的结构的构造函数".我与测试我的人接触有限,因此从未问过为什么.

这是一件坏事,为什么?我宁愿继续这样做.

c++ constructor struct

17
推荐指数
4
解决办法
1096
查看次数

使用视频流作为开放GL ES 2.0纹理

我正在尝试通过将Open GL ES纹理设置为android来捕获视频并将其显示在屏幕上surfaceTexture.我不能使用TextureView和实施SurfaceTextureListener按照本教程,因为我使用谷歌纸板.

我已经按照Android文档介绍了如何初始化Open GL ES 2.0并使用它,以及本教程中的纹理.

把2放在一起我得到一个空白的屏幕,偶尔进入<core_glBindTexture:572>: GL_INVALID_OPERATION控制台窗口.

如此多的新概念让我不知所措,我无法调试或只是理解这两种方法是否可以像这样使用.这是我的绘图代码,它onSurfaceCreated()MainActivity类中初始化,并从中绘制出onEyeDraw()Cardboard的绘图函数.

package com.example.rich.test3;

import android.hardware.Camera;
import android.opengl.GLES20;
import android.view.TextureView;

import java.nio.ShortBuffer;
import java.nio.FloatBuffer;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;

/**
 * Created by rich on 03/05/2015.
 */
public class Square {

private java.nio.FloatBuffer vertexBuffer;
private java.nio.ShortBuffer drawListBuffer;
private final java.nio.FloatBuffer mCubeTextureCoordinates;

float color[] = { 1.f, 1.f, 1.f, 1.0f };

private final String …
Run Code Online (Sandbox Code Playgroud)

android opengl-es-2.0 google-cardboard

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

使用NSIS部署Excel加载项 - 注册表问题

我在VS 2012中创建了一个测试项目

file - > new - > project - > Other Languages - > Visual C# - > Office - > 2010

这很好.我想在客户端计算机上部署它,在MSDN网站上查看我有2个选项,clickonce或installshield

https://msdn.microsoft.com/en-us/library/bb386179(v=vs.110).aspx

我不能使用clickonce,并且我被要求不使用installshield而是使用NSIS.我在NSIS方面取得了进展,但未能注册dll.如果我尝试使用Regsvr32手动注册它,我将收到一条错误消息

"模块"[filepath] TestAddin.dll"已加载,但未找到入口点DLLRegisterServer.请确保"[filepath] TestAddin.dll"是有效的DLL或OCX文件,然后重试.

这是我如何尝试在NSIS脚本中注册,取自我不完全理解的旧论坛页面.

  Exec 'regsvr32.exe /s "$INSTDIR\MyExcelAddin.dll"'

  WriteRegStr HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin.Connect" "FriendlyName" "MyExcelAddin"
  WriteRegStr HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin.Connect" "Description" "MyExcelAddin"
  WriteRegDWORD HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin.Connect" "LoadBehavior" "00000003"
  WriteRegDWORD HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin.Connect" "CommandLineSafe" "00000000"
Run Code Online (Sandbox Code Playgroud)

更新:我现在可以创建注册表项执行以下操作,但加载项仍然不会显示在Excel中

  SetRegView 64
  Exec '"%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "$INSTDIR\MyExcelAddin.dll"'

  WriteRegStr HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin" "FriendlyName" "MyExcelAddin"
  WriteRegStr HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin" "Description" "MyExcelAddin"
  WriteRegStr HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin" "Manifest" "Manifest file:///$INSTDIR\MyExcelAddin.vsto|vstolocal"
  WriteRegDWORD HKLM "Software\Microsoft\Office\Excel\Addins\MyExcelAddin" "LoadBehavior" …
Run Code Online (Sandbox Code Playgroud)

registry nsis excel-addins

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

在visual studio 2010 express中添加一个库

似乎无法找到如何添加库的明确答案.theres项目属性与一大堆的地方添加文件路径,但我想知道我是否应该编辑所有这些,有人可以告诉我每个可能的条目的目的,如果有更多,可能我应该编辑哪些?还是一个方便的导师?列出了我所知道的条目.目前正在尝试添加Wwise库.

  1. project-> 项目名称属性 - >配置属性 - > vc ++目录 - >库目录(单击编辑并添加相关文件路径)

  2. project-> project name properties - > configuration properties-> linker-> general-> additional library dependencies(click edit and addthe related filepath)

  3. project-> project name properties - > configuration properties-> linker-> input-> additional dependencies(手动输入库的名称)

如果我经历了所有这些,我会得到比我开始时更多的链接器错误

visual-studio-2010 visual-c++

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

opengl模板缓冲区 - 不太适用

目前我正在绘制一个背景,然后是一个透明三角形到模板缓冲区,然后是一个蓝色方块,其中三角形没有被绘制.我希望效果是一个蓝色的正方形,三角形孔暴露背景.但是我所得到的只是一个黑色的三角形.我认为我在广场上获得了预期的效果,但模板也应用于背景.

我的问题是如何调整以下代码以允许通过方形中的三角形孔显示背景?

static void Draw(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);

//big blue square
glColor3ub(0,255,255);
glBegin(GL_POLYGON);
glVertex3i(5, 5, 0);
glVertex3i(-5, 5, 0);
glVertex3i(-5, -5, 0);
glVertex3i(5, -5, 0);
glEnd();

glStencilFunc(GL_ALWAYS, 1, 1);
glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);

/* transparent triangle */
glColor4ub(0.0f, 0.0f, 0.0f, 0.0f);
glBegin(GL_POLYGON);
glVertex3i(-4, -4, 0);
glVertex3i(4, -4, 0);
glVertex3i(0, 4, 0);
glEnd();

glStencilFunc(GL_EQUAL, 1, 1);
glStencilOp(GL_INCR, GL_KEEP, GL_DECR);

glStencilFunc(GL_EQUAL, 2, 1);
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);

/* blue square */
glColor3ub(0, 0, 200);
glBegin(GL_POLYGON);
glVertex3i(3, 3, 0);
glVertex3i(-3, 3, 0);
glVertex3i(-3, -3, …
Run Code Online (Sandbox Code Playgroud)

opengl graphics stencil-buffer

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

c ++多态 - 使用基指针访问派生函数

有什么办法可以让我做以下工作,还是有办法解决?我肯定错过了什么.

class base
{
public:
    int someInt;
    virtual void someFunction(){}
};

class derived : public base
{
public:
    void someFunction(){}
    void anotherFunction(){}
};

int main (int argc, char * const argv[]) {

    base* aBasePointer = new derived;

    aBasePointer->anotherFunction();

    delete aBasePointer

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism inheritance

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

我的浮动操作有问题

我必须遗漏一些东西,这有什么不对吗?

float controlFrameRate = 1/60;
Run Code Online (Sandbox Code Playgroud)

它应该分配像0.0166666667这样的东西,它出来的0.00000等是视觉工作室只是骗我?

c++ operators

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

C++ - 将运算符存储为char

我知道奇怪的问题,但是可能会以某种方式得到以下内容吗?

int main (int argc, char * const argv[]) 
{
    const char* op1="+";
    int i = 10;
    int j = 20;
    int k = i op1 j; //compiler error, expected , or ; before op1

    printf("k is: %i", k);
}
Run Code Online (Sandbox Code Playgroud)

c++ operators char

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

c ++设计模式

这个可以吗?我基本上用一个封装所有游戏实体和逻辑的类来替换对引用全局变量的单个函数的调用,以下是我想在main中调用新类的方法,只是想知道对此有什么一般的c ++ guru共识.

class thingy
{
public:
    thingy()
    {
        loop();
    }
    void loop()
    {
        while(true)
        {
            //do stuff

            //if (something)
                //break out
        }
    }
};

int main (int argc, char * const argv[]) 
{
    thingy();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ oop

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

数组初始化语法

我刚刚在代码中遇到过这个,我不明白它在做什么,或者它是如何做它正在做的事情

pos[iter](1) += 12.0f / 900.0f;
Run Code Online (Sandbox Code Playgroud)

(1)将位置iter的数组值初始化为1,然后将(12.0f/900.0f)加到它上面吗?我不敢相信它是在循环中用于设置调试文本的位置,每个循环将下面的下一行设置为高y值(屏幕上的较低点).iter可以是0或1,具体取决于调试文本所在的列表.

我会理解它是否是静态操作.

c++ arrays

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