小编Bo *_*son的帖子

实例化中为NULL

在编写C++时,我们假设以下代码行:

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

如果这一行既编译并且不会导致异常或任何其他可见的运行时问题,那么在执行此行之后obj是否为NULL?

c++ null

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

如何可靠地检查一个Windows进程是否是C++中另一个进程的父进程?

我正在开发一个函数,它可以获取给定PID的父进程的PID.该功能的原型是

DWORD getParentPid( DWORD pid );
Run Code Online (Sandbox Code Playgroud)

为此,我正在使用CreateToolhelp32Snapshot函数(和相关函数)来获取PROCESSENTRY32给定PID 的结构pid.然后我可以使用th32ParentProcessId结构的字段来获取创建我给定进程的进程的PID.

但是,由于父进程可能已经被破坏(并且它的PID可能已被Windows重用),我正在使用该GetProcessTimes函数来获取假定的父进程和子进程的创建时间,然后比较那些使用的进程CompareFileTime.

如果CompareFileTime返回-1,我知道具有父ID的进程是在我的子进程之前创建的,所以它确实是父进程.否则,它显然是一个重用的ID - 并且父PID无效(它不再引用原始父级).

这个问题是它非常依赖于严格单调的系统时钟和粒度GetProcessTimes.即使正在考虑的过程确实处于亲子关系中,我确实遇到了CompareFileTime返回0(即"平等时间")的案例.我可以更改我的检查,以便将CompareFileTime结果值<= 0视为表示父项,但是我会打破(理论上)父项创建子进程,然后父进程被销毁,然后Windows重新使用PID的情况- 全部在100ns(这是分辨率GetProcessTimes).

我想知道 - 是否有一种不同的,更可靠的机制来验证某些进程确实是C++中另一个进程的父进程?

编辑:我需要这个函数来确定所有子进程(这意味着包括祖子进程).该CreateToolhelp32Snapshot让我遍历所有进程,但我需要看每个人的父PID告诉它是否是我手头过程的孩子.

c++ windows winapi

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

G ++ Cpp中的"未定义引用"

似乎无法让错误消失.错误如下.我已经看过谷歌仍然无法搞清楚.这不像我是Cpp的新手,但有一段时间没有被它愚弄.

奇怪的是它在Windows中使用G ++ ...

错误:

  • [泽@ fed0r!- - - **_ _*] $ g ++ main.cpp
  • /tmp/ccJL2ZHE.o:在函数`main'中:
  • main.cpp :(.text + 0x11):未定义引用`Help :: Help()'
  • main.cpp :(.text + 0x1d):未定义引用`Help :: sayName()'
  • main.cpp :(.text + 0x2e):未定义引用`Help ::〜Help()'
  • main.cpp :(.text + 0x46):未定义引用`Help ::〜Help()'
  • collect2:ld返回1退出状态

main.cpp中

#include <iostream>
#include "Help.h"

using namespace std;

int main () {

    Help h;
    h.sayName();

    // ***

    // ***

    // ***
    return 0;

}
Run Code Online (Sandbox Code Playgroud)

Help.h

#ifndef HELP_H
#define HELP_H

class Help {
    public:
        Help();
        ~Help();
        void sayName();
    protected:
    private:
}; …
Run Code Online (Sandbox Code Playgroud)

c++ g++ undefined-reference

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

将除了EXCEPTION_STACK_OVERFLOW之外的VC++的__try/__移植到MinGW

我试图使用VC++的try-except语句将一些代码移植到MinGW:

bool success = true;

__try {
    //...
} __except ((EXCEPTION_STACK_OVERFLOW == GetExceptionCode())
            ? EXCEPTION_EXECUTE_HANDLER
            : EXCEPTION_CONTINUE_SEARCH) {
    success = false;
    _resetstkoflw();
}
return success;
Run Code Online (Sandbox Code Playgroud)

是否可以编写使用MinGW g ++捕获堆栈溢出异常的代码?

c++ mingw visual-c++ try-except

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

如何在Mathematica中真正实现BarSpacing选项?

我正在尝试实现一个DateListBarChart函数,该函数采用过时数据并输出具有相同位置的条形图DateListPlot.如果给定相同的数据,他们必须将数据绘制在相同的水平位置,因此可以使用它们进行组合Show.我发现很难得到BarSpacing正确的设置,以便绘图的水平范围不会改变,并且条形基本上保持在相同的位置.

我无法推断出正确的比例,因此BarSpacing->{0.2,0.3}可以获得该组条的可用x轴长度的20%与该组中条之间的间距,以及30%作为条组之间的间距.由于技术原因,我通过将事情传递给我RectangleChart.根据文件,BarSpacing被视为绝对单位RectangleChart.显然,如果有更多的系列,间隙的绝对尺寸需要更小,并且条形需要更窄.

一些例子:

arList = FoldList[0.9 #1 + #2 &, 0.01, RandomReal[NormalDistribution[0, 1], 24]]

{0.01, 0.334557, 2.02709, 1.1878, 1.9009, 3.08604, 2.36652, 3.04111, 
3.32364, 3.22662, 3.12626, 2.59118, 1.69334, 1.21069, 0.23171, 
0.689415, -0.852649, -0.124624, 0.58604, -0.481886, 0.221074, 
-0.300329, 2.36137, 0.427789, -1.47747}

dists = RandomChoice[{3, 4}, Length[arList]]
{4, 4, 4, 3, 4, 3, 4, 3, 4, 4, 3, 4, 4, 3, 4, 4, 4, 4, 3, 4, …
Run Code Online (Sandbox Code Playgroud)

plot wolfram-mathematica bar-chart

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

墨卡托地图投影逻辑冲突

我正在寻找解释为什么在这些网站上讨论了2种不同的mercator公式.

我理解这是正确的墨卡托投影算法:

http://en.wikipedia.org/wiki/Mercator_projection

y = ln|sec(lat) + tan(lat)| 
Run Code Online (Sandbox Code Playgroud)

但是,这个网站指的是完全不同的东西:http: //wiki.openstreetmap.org/wiki/Mercator

#include <math.h>
double lat2y(double a) { return 180/M_PI * log(tan(M_PI/4+a*(M_PI/180)/2)); }
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c math map-projections mercator

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

Visual C++ x64附带进位

因为似乎没有ADC的固有内容而且我不能使用Visual C++的x64架构使用内联汇编程序,如果我想使用add with carry编写函数但是将它包含在C++命名空间中,我该怎么办?

(使用比较运算符进行仿真不是一种选择.这256兆位的添加对性能至关重要.)

c++ 64-bit inline-assembly intrinsics visual-c++

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

用于创建ASP.NET成员资格提供程序用户的脚本

我创建了一堆插入脚本,以便将新用户添加到aspnet_Membership和aspnet_User表中.我不能认证,说它找不到我的用户.

有没有人试图通过T-SQL插入创建新的成员资格用户?我必须这样做,因为我们在C#/ ASP.NET中创建用户代码目前不起作用.

t-sql asp.net asp.net-membership membership-provider

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

如何用前导零显示时间?

我创建了一个时间函数来计算媒体播放的时间.它不显示任何前导零.如何让它显示任何前导零?

function converttoTime(timeInSeconds)
   {
    var minutes = Math.round(Math.floor(timeInSeconds / 60));
    var seconds = Math.round(timeInSeconds - minutes * 60);
    //var hours = Math.round(Math.floor(timeInSeconds / 3600));
    //time = time - hours * 3600;
    var time=minutes+':'+seconds;
    return time;
   }
Run Code Online (Sandbox Code Playgroud)

javascript time datetime

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

班级成员是否保证在记忆中是连续的?

我有一个包含许多函数指针的类,我想在构造对象时将它们全部初始化为NULL.为此,我计划在内存位置上使用memset,从第一个指针指向最后一个指针,但是我不确定这是否会在100%的时间内起作用.

如果这些函数指针在类中连续声明它们的内存位置也是连续的,那么它是否可以保证.我假设填充不会影响我正在尝试做的事情,因为任何填充字节也只会设置为NULL.

示例类实现

class C
{
private:
    void (*func1)();
    void (*func2)();
    void (*func3)();
    void (*func4)();
};
Run Code Online (Sandbox Code Playgroud)

c++

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