小编Bil*_*eal的帖子

C++获取对返回对象的引用

我需要通过引用抓取一个对象,我曾经这样做:

MyObject& obj = FactoryThatGivesAnObject();
obj.MethodThatModifieObj();
Run Code Online (Sandbox Code Playgroud)

不,我需要根据条件做到这一点:

MyObject obj;

// Need obj to be a reference to the returned values below
if( foo )
    obj = FactoryThatGivesAnObject();
else
    obj = OtherFactoryThatGivesAnObject();

obj.MethodThatModifiesObj();
Run Code Online (Sandbox Code Playgroud)

如何在第二个例子中将obj作为参考?

c++ reference

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

为什么有些可执行文件没有主要功能?

我"objdump -d"是一个可执行文件,例如/ bin/ls,我发现汇编代码中没有任何主函数.为什么?

objdump

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

什么是KEY_WOW64_RES?

在Windows标题中,有

//
// Registry Specific Access Rights.
//

#define KEY_QUERY_VALUE         (0x0001)
#define KEY_SET_VALUE           (0x0002)
#define KEY_CREATE_SUB_KEY      (0x0004)
#define KEY_ENUMERATE_SUB_KEYS  (0x0008)
#define KEY_NOTIFY              (0x0010)
#define KEY_CREATE_LINK         (0x0020)
#define KEY_WOW64_32KEY         (0x0200)
#define KEY_WOW64_64KEY         (0x0100)
#define KEY_WOW64_RES           (0x0300)
Run Code Online (Sandbox Code Playgroud)

These are all well documented in the MSDN article, Registry Key Security and Access Rights, except KEY_WOW64_RES. What does this mean? It appears to turn on contradictory flags.

winapi

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

如何在WPF中使按钮的透明部分可单击?

我在WPF中有一堆带有透明背景的工具条按钮.当用户将鼠标悬停在按钮外部时,没有任何反应,因为按钮的该部分是透明的.一旦用户将鼠标悬停在按钮的一个非透明区域上,"悬停"行为就会改变边框和背景颜色.背景不再透明,因此悬停行为将持续比以前更大的区域.我希望按钮的透明区域的行为就像按钮在那里不透明一样.

也就是说,现在我有这种行为,即使鼠标明显位于按钮区域内,按钮仍未被选中:

不良行为

即使用户之前没有将鼠标悬停在按钮的前景"白色"部分,我也试图让按钮被选中.

好行为

我尝试设置IsHitTestVisible按钮本身,但这似乎没有任何区别.

有没有办法让WPF认为按钮的透明区域有意义?

XAML目前看起来像这样:

<Button Style="{StaticResource MainToolstripButtonStyle}" Margin="5,0,0,0"
ToolTip="{StaticResource OpenButtonText}"
AutomationProperties.Name="{StaticResource OpenButtonText}"
Command="{StaticResource Open}"
Content="{StaticResource OpenIcon}" />

<Style x:Key="MainToolstripButtonStyle" TargetType="Button">
    <Setter Property="Width" Value="24" />
    <Setter Property="Height" Value="24" />
    <Setter Property="Background" Value="{x:Null}" />
    <Setter Property="Foreground" Value="White" />
    <Setter Property="Padding" Value="0" />
    <!-- If users want to use keyboard navigation, they use the menu instead. -->
    <Setter Property="IsTabStop" Value="False" />
    <Setter Property="Focusable" Value="False"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Border Name="Border"
              BorderThickness="1"
              BorderBrush="{x:Null}">
                    <ContentPresenter HorizontalAlignment="Center"
                          VerticalAlignment="Center" 
                          RecognizesAccessKey="True" /> …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf

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

C++中的快速按位问题

我正在寻找一种快速的方法来设置一个基于数字返回位掩码的方法.基本上,在数字输入之前需要发出4个比特.这是我的意思:

FOO(1); //返回0x000F foo(2); //返回0x00FF foo(3); //返回0x0FFF foo(4); //返回0xFFFF

我可以使用一个大的switch语句,但我不知道输入类型有多宽.(这是模板功能)

这是我尝试的第一件事:

template <typename T> T foo(unsigned short length)
{
    T result = 0xF;
    for (unsigned short idx = length; idx > 0; idx--)
    {
        result = (result << 4 | 0xF);
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

但它花了很多时间在for循环上做维护.我没有想到的任何聪明的方法吗?

Billy3

c++ bit-manipulation

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

弄清楚是什么让VS ++中的C++类抽象化

我正在使用VS2008构建一个普通的旧C++程序(而不是C++/CLI).我有一个抽象基类和一个非抽象派生类,并构建这个:

Base* obj;
obj = new Derived();
Run Code Online (Sandbox Code Playgroud)

失败并显示错误"'Derived':无法实例化抽象类".(但值得注意的是,如果我将鼠标悬停在Base光标上,VS会弹出一个工具提示"class base abstract",但是悬停Derived只会说"class Derived"(没有"抽象")).

这些类的定义相当大,我想避免手动检查每个方法是否已被覆盖.VS能以某种方式为我做这件事吗?有关精确定位类定义的确切部分以使其抽象的一般提示吗?

c++ abstract-class visual-studio-2008 visual-studio

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

如何扭转此操作?

<?php

echo (2884284 >> 16), '<br>'; // = 44

echo ((2884284 >> 16) & 0xFFFF), '<br>'; // 44
Run Code Online (Sandbox Code Playgroud)

从上面我得到44

那怎么能从44回到2884284 ???

php programming-languages

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

是否允许销毁std :: fstream关闭相关文件?

我想知道我是否需要一个RAII包装std::fstream....

c++

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

使用float计算C/C++

我正在练习C,编写简单的程序.下面的小程序应该从用户那里获得3个数字并将它们相乘.我的问题是我对我必须使用的变量类型有点困惑.我希望程序采用任何数字,如5,5.673434,99.123等,用它们计算并打印出一个圆形浮点数.我尝试了很多东西但是结果总是错误的.该程序只打印出非常大的数字和令人困惑的字符序列.我会感谢任何建议.谢谢.

#include <stdio.h>

int main()
{
    int num1, num2, num3;

    printf("Hello! This little programm will execute a few calculations \nafter you've typed in 3 numbers of your choise. \nPlease type in your first number: ");
    scanf_s("%f", &num1);
    printf("Great. Please choose your second number: ");
    scanf_s("%f", &num2);
    printf("And the third number please: ");
    scanf_s("%f", &num3);
    printf("Ok. You want to use %f, %f, %f for your calculation. Press a button begin.\n", num1, num2, num3 );  
    printf("Multiplication: %.2f", num1 * num2 …
Run Code Online (Sandbox Code Playgroud)

c c++

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

Stringstream to string logic C++

header.h

#include <iostream>
#include <vector>

class CombatLine{   
    std::stringstream Line;    
    std::vector<std::string> TokenLine;  
    void SetLine(std::string s){   
        Line<<s;   
    }    
public:   
void SetTokenLine(){   
    int i=0;    
    while(i<5){   
        Line>>TokenLine[i];   
        i++;}      
    TokenLine.resize(i);   
    for(int j=0;j<5;j++)   
        cout<<TokenLine[j];} 
Run Code Online (Sandbox Code Playgroud)

main.cpp中

#include "Header.h"
using namespace std;   

int main () {   
    CombatLine Line1;   
    Line1.SetLine("[Combat] A bird attacks -Anthrax- and misses (dodge).");   
    Line1.SetTokenLine();   
}   
Run Code Online (Sandbox Code Playgroud)

这构建但我收到此运行时错误, /cygdrive/C/Program Files/NetBeans 6.9.1/ide/bin/nativeexecution/dorun.sh: line 33: 4500 Segmentation fault <core dumped> sh "$<SHFILE>"

我知道它与我在SetTokenFile中操作字符串和流的方式有关,但我似乎无法确定是什么.

这是一个较大项目的一小部分.总的来说,我将解析一个动态文本文件,然后对整个文件的内容进行比较.

c++ stringstream

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