小编Nic*_*ton的帖子

我可以使用带有OpenGL glTexImage2D功能的灰度图像吗?

我的纹理只有一个通道,因为它是一个灰度图像.当我将像素传递给glTexImage2D时,它会变成红色(显然是因为通道1是红色; RGB).

glTexImage2D(
    GL_TEXTURE_2D, 0, GL_RGBA,
    dicomImage->GetColumns(), dicomImage->GetRows(),
    0, GL_RGBA, GL_UNSIGNED_BYTE, pixelArrayPtr);
Run Code Online (Sandbox Code Playgroud)

我是否更改了GL_RGBA?如果是这样,该怎么办?

c++ opengl textures

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

错误,"时间戳服务不可用." 在Mac OS X 10.8上使用codesign时

我正在使用Apple Developer ID证书签署应用程序包.我需要使用命令行工具进行签名,因为我们的构建是自动化的,并且从我们的工具链运行.90%的时间使用此命令正常工作:

ws5:bin nick$ codesign -fs "Developer ID Application: <my name here>" MyApp.app
ws5:bin nick$ spctl --assess MyApp.app
ws5:bin nick$ 
Run Code Online (Sandbox Code Playgroud)

注意: MyApp.app不是我的真实应用程序名称,<my name here>并不是实际值.

因此,可能会有1到10次间歇性地失败并出现此错误:

MyApp.app: The timestamp service is not available.
Run Code Online (Sandbox Code Playgroud)

我已经验证了.app通过隔离机制,spctl --assess并通过压缩和下载签名文件 - 所以请不要说"你做错了,使用Xcode".我知道Apple并没有"正式"推荐使用codesign开发者ID证书(根据WWDC视频),但我们需要将其用于自动化,因为我们的应用程序是gcc和Qt构建输出的奇怪组合.

围绕此错误的最佳策略是重试,直到它再次运行?这就是我能想到的.

macos code-signing

15
推荐指数
5
解决办法
7188
查看次数

OpenGL纹理没有显示的常见故障排除步骤是什么?

在我的应用程序中进行一些更改后,我的纹理不再显示.到目前为止,我已经检查了以下内容:

  • 相机方向没有改变.
  • 我可以看到矢量(当着色而不是纹理时).

任何通常的嫌疑人?

opengl textures

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

使用TCP时发送1个大块或大块小块是否更好?

在我accept()连接,然后write()到客户端套接字之后,最好是一次写入要发送的所有数据还是以块的形式发送它?

例如:

接受,写1MB,断开连接

…要么…

接受,写入256个字节,写入256个字节,... n,断开连接

我的直觉告诉我,底层协议会自动执行此操作,并进行错误更正等.这是正确的,还是我应该将数据分块?

在你问之前,不,我不确定我在哪里想到数据块 - 我认为这是我从编程C#web服务中获得的本能(为了绕过接收缓冲区限制等,我认为).坏习惯?

注意:我正在使用C.

c sockets tcp

13
推荐指数
4
解决办法
4013
查看次数

CMake可以在Mac OS X上指定基本SDK吗?

有谁知道如何指定Mac OS X SDK与CMake一起构建?我已经搜索了cmake mac "base sdk"但是没有发现任何事情.

我正在使用CMake生成Unix makefile.

更新

在我的10.6安装上,我看到/Developer/SDKs有以下内容:

  • MacOSX10.4u.sdk
  • MacOSX10.5.sdk
  • MacOSX10.6.sdk

也许我可以让CMake以某种方式将这些路径之一传递给编译器?

另外,我的10.7安装只有:

  • MacOSX10.6.sdk
  • MacOSX10.7.sdk

这是否意味着它只能为这些平台构建?

更新2

该死的,我刚才意识到实际上我并没有使用Xcode - 所以这可能会影响一些答案.此外,我现在正在尝试Mac OS X 10.8开发人员预览(有一些奇怪的结果,请参阅我的回答).

c++ macos cmake

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

我必须为我的C++类字段使用指针吗?

在阅读了关于指针和引用之间差异的问题之后,我决定使用引用而不是指针用于我的类字段.然而,似乎这是不可能的,因为它们不能被宣布为未初始化(对吧?).

在我现在正在处理的特定场景中,我不想使用正常变量(顺便说一下它们的正确用语是什么?)因为它们在我声明它们时会自动初始化.

在我的代码片段中,bar1自动使用默认构造函数实例化(这不是我想要的),而bar2导致编译器错误,因为你不能使用未初始化的引用(正确吗?),而*bar3很高兴因为指针可以声明未初始化(顺便说一下,最好将此设置为NULL吗?).

class Foo
{
public:
    Bar bar1;
    Bar &bar2;
    Bar *bar3;
}
Run Code Online (Sandbox Code Playgroud)

看起来我必须在这种情况下使用指针,这是真的吗?另外,使用变量的最佳方法是什么? - >语法有点麻烦......运气好吗?什么智能指针,等等?这有关系吗?

更新1:

尝试在我的类中实现引用变量字段并在构造函数中初始化它之后,为什么我会收到以下错误?

../src/textures/VTexture.cpp: In constructor ‘vimrid::textures::VTexture::VTexture()’:
../src/textures/VTexture.cpp:19: error: uninitialized reference member ‘vimrid::textures::VTexture::image’
Run Code Online (Sandbox Code Playgroud)

这是真正的代码:

// VTexture.h
class VTexture
{
public:
    VTexture(vimrid::imaging::ImageMatrix &rImage);
private:
    vimrid::imaging::ImageMatrix &image;
}

// VTexture.cpp
VTexture::VTexture(ImageMatrix &rImage)
    : image(rImage)
{
}
Run Code Online (Sandbox Code Playgroud)

我也试过在标题中这样做,但没有运气(我得到同样的错误).

// VTexture.h
class VTexture
{
public:
    VTexture(vimrid::imaging::ImageMatrix &rimage) : image(rImage) { }
}
Run Code Online (Sandbox Code Playgroud)

更新2:

弗雷德拉森 - 是的!有一个默认的构造函数; 我忽略了它,因为我认为这与问题无关(我多么愚蠢).删除默认构造函数后,我导致编译器错误,因为该类与std :: vector一起使用,需要有一个默认构造函数.因此看起来我必须使用默认构造函数,因此必须使用指针.羞耻......或者是吗?:)

c++ pointers reference

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

使用C++,如何正确地从同一个基类继承两次?

这是我们理想的继承层次结构:

class Foobar;

class FoobarClient : Foobar;

class FoobarServer : Foobar;

class WindowsFoobar : Foobar;

class UnixFoobar : Foobar;

class WindowsFoobarClient : WindowsFoobar, FoobarClient;

class WindowsFoobarServer : WindowsFoobar, FoobarServer;

class UnixFoobarClient : UnixFoobar, FoobarClient;

class UnixFoobarServer : UnixFoobar, FoobarServer;
Run Code Online (Sandbox Code Playgroud)

这是因为我们的继承层次结构会尝试从Foobar两次继承,因此,编译器会抱怨任何成员的模糊引用Foobar.

请允许我解释为什么我想要这么复杂的模型.这是因为我们希望有来自同一个变量访问WindowsFoobar,UnixFoobar,FoobarClient,和FoobarServer.这不会是一个问题,只是我想使用上面任意组合的多重继承,这样我就可以在任何平台上使用服务器/客户端功能,并在客户端或服务器上使用平台功能.

我不禁觉得这是多重继承的一个常见问题...我是从完全错误的角度来解决这个问题吗?

更新1:

另外,考虑到我们可以使用它#ifdef来解决这个问题,但是,这会产生非常难看的代码,例如:

CFoobar::CFoobar()
#if SYSAPI_WIN32
: m_someData(1234)
#endif
{
}
Run Code Online (Sandbox Code Playgroud)

...哎!

更新2:

对于那些想要更多地了解这个问题的人,我真的建议浏览相应的邮件列表线程.在第3篇文章开始变得有趣.还有一个相关的代码提交,您可以在此处查看有问题的真实代码.

c++ multiple-inheritance

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

通过服务器端调用Perl时导致"suexec策略违规"的原因包括?

我正在研究一个Perl脚本,它从Apache 2服务器上的服务器端调用.该脚本显示通用的"内部服务器错误"页面,而不是显示实际错误.当我检查Apache错误日志时,我看到以下消息:

unable to include "/foobar/index.pl" in parsed file /home/foouser/domains/foosite.com/public_html/foobar/index.shtml, referer: http://www.foosite.com/foobar/
suexec policy violation: see suexec log for more details, referer: http://www.foosite.com/foobar/
Premature end of script headers: settings.pl, referer: http://www.foosite.com/foobar/
Run Code Online (Sandbox Code Playgroud)

如何让Perl脚本显示错误而不是"内部服务器错误"?

更新:

我本来应该问一个单独的问题,因为我已经知道这确实会向浏览器发送错误(感谢brian):

use CGI::Carp qw(fatalsToBrowser);
Run Code Online (Sandbox Code Playgroud)

但是,如果问题出在Apache配置而不是Perl脚本上,那么错误将不会发送到浏览器,因为没有解释Perl代码.在这种情况下,由于这一行,我们可以告诉我遇到Apache错误(而不是Perl错误):

 suexec policy violation: see suexec log for more details
Run Code Online (Sandbox Code Playgroud)

当Apache以SUexec模式运行时(这似乎是共享主机通用),就会发生这种情况.我不确定究竟有什么改变导致这个错误,但这就是我想要找到的.

apache perl suexec

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

当你真的搞砸了分布式系统的设计时该怎么办?

相关问题: 打破集中式数据库的最有效方法是什么?

我将尝试使这个问题相当普遍,这将有利于其他人.

大约3年前,我实施了一个集成的CRM和网站.因为我想给客户留下深刻的印象,所以我实现了我能想到的最便宜的架构,即在Web服务器上托管中央数据库和网站.我创建了一个桌面应用程序,它通过Web服务与Web服务器通信(该应用程序从其主办公室运行).

事后看来,这是相当愚蠢的,因为现在公司已经发展壮大,他们的互联网连接每个月变得越来越慢.现在,由于速度问题,桌面软件定期超时,客户有3个选项:

  1. 购买更快的互联网连接.
  2. 将数据库(和网站)移动到内部服务器.
  3. 重新设计架构,以便CRM和Web数据库是分开的.

第一种选择是"最简单",但肯定不是最便宜的长期选择.第二种选择; 如果我们将网站转移到内部托管,客户必须解决超载/差/离线互联网连接,断电等问题.最后的选择; 客户厌倦了为我重新设计和重新编码架构而付出了大量现金,我无法承担免费的费用(我需要吃饭).

有没有办法从你搞砸了分布式系统的设计那么糟糕的时候恢复,没有一个选项可以工作?或者是减少损失并从错误中吸取教训的情况?我觉得很难解决这个问题.

distributed-computing

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

如何在Java应用程序中在Android上运行Lua脚本?

我正在开发一个使用Lua脚本的Java Android游戏.要执行这些脚本,我将LuaJ与Java的ScriptEngine类一起使用.例如...

ScriptEngineManager sem = new ScriptEngineManager();
scriptEngine = sem.getEngineByExtension(".lua");
script = ((Compilable)scriptEngine).compile("some lua here");
Run Code Online (Sandbox Code Playgroud)

然而,这显然不支持Android(与android没有完整的JVM有关,我在某处阅读).有没有办法在Android上使用Lua脚本?也许有一个LuaJ替代品?也许有一种方法可以直接使用LuaJ编译和执行Lua脚本(虽然我看不清楚).

仅供参考,当我尝试在Android上运行此代码时,我看到此错误:

05-06 16:12:32.870: E/dalvikvm(17509): Could not find class 'javax.script.ScriptEngineManager', referenced from method unearth.levels.LevelReader.<init>
05-06 16:12:32.870: W/dalvikvm(17509): VFY: unable to resolve new-instance 787 (Ljavax/script/ScriptEngineManager;) in Lunearth/levels/LevelReader;
05-06 16:12:32.870: D/dalvikvm(17509): VFY: replacing opcode 0x22 at 0x0018
05-06 16:12:32.875: E/dalvikvm(17509): Could not find class 'javax.script.Compilable', referenced from method unearth.levels.LevelReader.parseScript
05-06 16:12:32.875: W/dalvikvm(17509): VFY: unable to resolve check-cast 782 (Ljavax/script/Compilable;) in Lunearth/levels/LevelReader;
05-06 16:12:32.875: D/dalvikvm(17509): VFY: replacing opcode …
Run Code Online (Sandbox Code Playgroud)

java lua android

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