小编Chr*_*cke的帖子

BringWindowToTop,SetForegroundwindow,SetWindowPos等有什么区别?

BringWindowToTop,SetForegroundWindow,SwitchToThisWindow,SetWindowPos,ShowWindow所有被描述为示出与激活的窗口.

它们之间有什么真正的区别?何时以及为什么BringWindowToTop首选SetForegroundWindow,或者SwitchToThisWindow甚至SetWindowPos将标志设置为激活和显示?

windows winapi

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

易失性成员函数的性能结果

我在2001年发现了一篇关于Dobbs博士的文章:volatile - 多线程程序员最好的朋友.我总是发现'volatile'有点无用 - 至少作为变量的限定符 - 因为对线程之间共享的变量的访问总是会经历某种类型的库层.

尽管如此,将类实例和方法标记为"易变"以表明文章中提供的线程安全程度似乎非常引人注目.

为了快速总结一下这篇文章,核心思想是可以声明一个这样的类:

struct SomeObject {
  void SingleThreadedMethod();
  void Method();
  void Method() volatile;
};
Run Code Online (Sandbox Code Playgroud)

然后,类的实例,如下所示:

// An object that will only be accessed from a single thread.
SomeObject singleThreaded;
// An objecect that will be accessed from multiple threads.
volatile SomeObject sharedObject;

sharedObject.SingleThreadedMethod(); //this will be an compile error
sharedObject.Method(); // will call the volatile overload of Method
singleThreaded.Method(); // would call the non volatile overload of Method.
Run Code Online (Sandbox Code Playgroud)

想法是实现像"Method()volatile"这样的方法:

void SomeObject::Method() volatile …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading volatile

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

老年人计算机科学

我学习了C++,当它是C语言时.我发现自己越来越不喜欢XML和垃圾收集等新技术.另一方面,我发现了像Lua和Python这样的脚本语言.而且我发现自己更喜欢C++的混合环境,具有确定性内存控制,嵌入式脚本语言,垃圾收集以及所有这些.

我的问题是,当我试图学习这些语言时,我发现自己遇到了一些我不理解的术语:lambdas,closures等.

有哪些在线资源可供老年人了解这些内容?

computer-science language-theory terminology

14
推荐指数
4
解决办法
784
查看次数

vc80.pdb - 如何让它消失,再也不会打扰我?

使用VS2005构建静态库时,我不断收到链接器警告,表明我的library.lib无法找到VC80.pdb.显然,因此,IDE的编辑和继续功能无法处理包含library.lib的任何项目

需要什么魔法才能告诉VS2005生成带编辑的静态库并继续调试信息,在链接到项目时不引用或需要vs80.pdb?

- 进一步理解 - 因此,为了使编译并继续使用预编译的静态库,我们需要将vs80.pdb和vs80.pdb文件与.lib一起放入SVN,AND重命名pdb/idb以防止在使用多个预编译库执行此操作时发生冲突.

visual-studio-2005 visual-c++

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

来自字节数组的CGImage

使用标准图像格式(jpeg,gif,png等)从文件加载CGImage或NSImage非常简单.

但是,我现在需要在使用libfreetype生成的内存中以字节为单位创建CGImage.从格式化的字节数组中创建OpenGL纹理非常容易,我可以看到如何创建要写入的CGBitmapContext .但我似乎无法找到一种从原始像素阵列创建CGImage的简单方法.

cocoa freetype cgimage

14
推荐指数
3
解决办法
8560
查看次数

嵌入式Webkit - 脚本回调如何?

在Windows上,当"Shell.Explorer"ActiveX控件嵌入到应用程序中时,可以在实现IDispatch的对象上注册"外部"处理程序,以便网页上的脚本可以调用托管应用程序.

<button onclick="window.external.Test('called from script code')">test</button>
Run Code Online (Sandbox Code Playgroud)

现在,我转向Mac开发,并认为我可以从我的Cocoa应用程序中嵌入的WebKit中获得类似的功能.但是,似乎没有任何工具允许脚本回调到托管应用程序.

一条建议是挂钩window.alert并获取脚本以将格式化的消息字符串作为警报字符串传递.我也想知道是否可以使用NPPVpluginScriptableNPObject将WebKit定向到应用程序托管的NPAPI插件.

我错过了什么吗?托管WebView并允许脚本与主机交互真的很难吗?

cocoa webkit npapi

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

与GCC wchar_t有多大?

GCC支持-fshort-wchar,它将wchar_t从4切换到两个字节.

在编译时检测wchar_t大小的最佳方法是什么,所以我可以正确映射到适当的utf-16或utf-32类型?至少,直到c ++ 0x被释放并给我们稳定的utf16_t和utf_32_t typedef.

#if ?what_goes_here?
  typedef wchar_t Utf32;
  typedef unsigned short Utf16;
#else
  typedef wchar_t Utf16;
  typedef unsigned int Utf32;
#endif
Run Code Online (Sandbox Code Playgroud)

c++ macros gcc

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

dot中的子图集群排名

我正在尝试在media wiki上使用graphviz作为软件的文档工具.

首先,我记录了一些运作良好的阶级关系.一切都按预期垂直排列.

但是,然后,我们的一些模块是dll,我想分成一个盒子.当我将节点添加到集群时,它们已经过了边缘,但集群似乎有一个LR排名规则.或者被添加到群集中打破了节点的TB排名,因为群集现在出现在图表的一侧.

此图表示我正在尝试执行的操作:此时,cluster1和cluster2显示在cluster0的右侧.

我想/需要它们出现在下面.

<graphviz>
digraph d {
    subgraph cluster0 {
      A -> {B1 B2}
      B2 -> {C1 C2 C3}
      C1 -> D;
    }
    subgraph cluster1 {
      C2 -> dll1_A;
      dll1_A -> B1;
    }
    subgraph cluster2 { 
      C3 -> dll2_A;
    }
    dll1_A -> dll2_A;
}
</graphviz>
Run Code Online (Sandbox Code Playgroud)

dot graphviz

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

与Objective-c朋友的c ++类

我有一个混合使用c ++和objective-c的应用程序.

相当多的c ++类仅仅作为从x ++应用程序的其余部分访问底层objective-c对象的外观.

我的问题是设计之一:objective-c类需要通过一组我更喜欢标记为私有的方法回调到c ++类 - 没有其他c ++类(甚至不是派生类)需要搞乱这些.

但我无法将它们标记为私有,因为似乎没有办法让Objective-c类方法成为c ++类的"朋友".

我考虑过作弊并使用宏来将c ++方法标记为public __OBJC__定义,但这会改变方法的修饰并导致链接错误.

还有其他人遇到过吗?

// MyView.mm
@interface MyView : NSView {
@public
  CMyView* _cpp;
}

-(void)drawRect:(NSRect)dirtyRect {
  CGContextRef cgc = (CGContextRef)[[NSGraphicsContext currentContext]graphicsPort];
  _cpp->Draw(cgc);
}
...

// MyView.h
class CMyView {
  id _view; 
public:
  // this method should be private. It exists ONLY for the MyView obj-c class.
  void Draw(CGContextRef cdc);
};
Run Code Online (Sandbox Code Playgroud)

c++ objective-c

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

用于单元测试的Unicode测试字符串

我需要一些Utf32测试字符串来练习一些跨平台的字符串操作代码.我想要一套测试字符串来运行utf32 < - > utf16 < - > utf8编码,以验证BMP之外的字符可以从utf32转换为utf16代理,通过utf8,然后返回.正常.

如果所讨论的字符串不仅仅是由随机字节组成,而且在它们编码的(各种)语言中实际上有意义,我总会觉得它更优雅一些.

c++ unicode unit-testing

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