小编Nic*_*sui的帖子

_CRTDBG_MAP_ALLOC未显示文件名

我正在尝试检测内存泄漏,我正在使用make _CRTDBG_MAP_ALLOC宏来定位泄漏区域.所以我定义MACRO如下:

#ifdef _DEBUG
    #define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
    #define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__)
    #define new DEBUG_NEW
#endif
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我有:

UINT SomeFunThread( LPVOID pParam )
{
   _CrtMemState crtMemStateStart;
    _CrtMemState crtMemStateFinish;

    _CrtMemCheckpoint(&crtMemStateStart);


    // My suspisious code


     _CrtMemCheckpoint(&crtMemStateFinish);

      int nDifference(0);
      _CrtMemState crtMemStateDifference;
      nDifference = _CrtMemDifference(&crtMemStateDifference, &crtMemStateStart, &crtMemStateFinish);

    if(nDifference > 0)
        _CrtDumpMemoryLeaks();

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

(感谢Tushar Jadhav:内存消耗迅速增加,然后下降非常缓慢;内存泄漏?)

但输出显示如下:

Detected memory leaks!
Dumping objects ->
{124058} normal block at 0x0000000031DED080, 24 bytes long.
 Data: < 0      ` $     > C8 30 F7 …
Run Code Online (Sandbox Code Playgroud)

c++ debugging memory-leaks crtdbg.h

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

从C#运行dos命令行?

我试图从命令行提示符运行此命令:

"D:\\fiji\\fiji.exe -macro D:\\fiji\\macros\\FFTBatch.ijm --headless"
Run Code Online (Sandbox Code Playgroud)

当我在命令行控制台中输入它时,它工作得很好.

但是,当我试图使它从C#应用程序工作时,它失败了.我试过跟随,但似乎上面的命令没有以某种方式执行:

string fijiCmdText = "D:\\fiji\\fiji.exe -macro D:\\fiji\\macros\\FFTBatch.ijm --headless";
System.Diagnostics.Process.Start("cmd.exe", fijiCmdText);
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何改变它的工作?谢谢.

c# command-line start-process

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

AttributeError:该层从未被调用,因此没有定义的输出形状

我正在尝试定义一个模型 happyModel()

# GRADED FUNCTION: happyModel

def happyModel():
    """
    Implements the forward propagation for the binary classification model:
    ZEROPAD2D -> CONV2D -> BATCHNORM -> RELU -> MAXPOOL -> FLATTEN -> DENSE

Note that for simplicity and grading purposes, you'll hard-code all the values
such as the stride and kernel (filter) sizes. 
Normally, functions should take these values as function parameters.

Arguments:
None

Returns:
model -- TF Keras model (object containing the information for the entire training process) 
"""
model = …
Run Code Online (Sandbox Code Playgroud)

model keras tensorflow

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

CoInitialize()在C++中没有被称为异常

- 我的问题

我得到的CoInitialize还没有被称为exption.

- 我的项目结构

这是我的问题.我有一个COM DLL,用C#开发MCLWrapper.dll; 我有一个原生的C++ DLL,ThorDetectorSwitch.dll调用MCLWrapper.dll; 最后,我有一个调用ThorDetectorSwitch.dll的控制台应用程序TDSTest.exe.基本上,这样的事情:

TDSTest.exe(C++控制台) - > ThorDetectorSwitch.dll(C++ native) - > MCLWrapper.dll(C#)


TDSTest.exe中加载ThorDetectorSwitch.dll的代码:

HINSTANCE hInst = LoadLibrary(_T("C:\\TIS_Nick\\Hardware\\Devices\\ThorDetectorSwitch\\TDSTest\\TDSTest\\Debug\\Modules_Native\\ThorDetectorSwitch.dll"));
Run Code Online (Sandbox Code Playgroud)

ThorDetectorSwitch.cpp中的构造函数

ThorDetectorSwitch::ThorDetectorSwitch() : _mcSwitch(__uuidof(MCLControlClass))
{
    _A  = WstringToBSTR(L"A"); 
    _B  = WstringToBSTR(L"B");
    _C  = WstringToBSTR(L"C");
    _D  = WstringToBSTR(L"D");

    _deviceDetected = FALSE;
}
Run Code Online (Sandbox Code Playgroud)

断点击中上面ThorDetectorSwitch.dll的构造函数的第一个括号,但是如果我点击F10则会立即发生异常(再多一步)

它跳到了

 hr = CoCreateInstance(rclsid, pOuter, dwClsContext, __uuidof(IUnknown), reinterpret_cast<void**>(&pIUnknown));
Run Code Online (Sandbox Code Playgroud)

在comip.h中.hr简直就是"没有调用CoInitialize".

几天来我一直在想这个问题,无法找到解决办法.这里有人可以分享任何想法?真的很感激.

c++ com dllimport

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

WPF复选框IsChecked绑定无法正常工作

我有这个问题,我的复选框IsChecked属性绑定不起作用.我用谷歌搜索,但人们说它shoudl TwoWay绑定,这是我正在使用.

这是我的代码:

 <CheckBox Name="ckC" VerticalAlignment="Center"
           IsChecked="{Binding Path=LSMChannelEnable[2],
                               Mode=TwoWay,
                               UpdateSourceTrigger=PropertyChanged}" />
Run Code Online (Sandbox Code Playgroud)

这是它背后的C#代码:

public bool[] LSMChannelEnable
{
    get
    {
        return this._liveImage.LSMChannelEnable;
    }
    set
    {
        this._liveImage.LSMChannelEnable = value;
        OnPropertyChanged("LSMChannelEnable");
        OnPropertyChanged("EnableChannelCount");
        OnPropertyChanged("LSMChannel");
    }
}
Run Code Online (Sandbox Code Playgroud)

任何指针都非常感谢,

c# wpf checkbox xaml binding

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

从命令行运行斐济?

  • 这是我想要做的:

我想从命令行运行斐济,做批量图像处理之类的事情.我想通过在某些控制台上键入一些命令,可以启动一些批处理文件来执行一些宏.在这种情况下,斐济 GUI不会显示,但处理将在场景后面运行.

  • 这是我做的:

我只是尝试了FIji无头,但是当我尝试./Build.sh misc/headless.jar网络建议时,控制台提示返回无法找到artifactID'headless'的项目; 我也试过Javassist,几乎只是构建它,但还没弄清楚如何使用它.

  • 这是我遇到的问题:

当我输入时fiji --headless HelloWorldMacro.ijm,没有任何事情发生,HelloWorldMacro.ijm里面是printf("Hello world!");

我想知道,我应该如何从命令行运行FIji?我在正确的轨道上尝试过吗?如果是这样,还需要哪些额外的工作/变更才能使其发挥作用?非常感谢.

macros command-line imagej

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

c ++ float vector无法识别浮点数?

我有以下代码初始化浮动向量:

std::vector<float> arr= { -11, -12, -45.3, -34.5, 110, 5, 10,3 ,22, 100, 1, 23 };
Run Code Online (Sandbox Code Playgroud)

但是我得到一个编译错误:

 error C2398: Element '3': conversion from 'double' to 'float' requires a narrowing conversion
Run Code Online (Sandbox Code Playgroud)

如果我将第三个元素-45.3更改为-45,如下所示:

std::vector<float> arr= { -11, -12, -45, -34.5, 110, 5, 10,3 ,22, 100, 1, 23 };
Run Code Online (Sandbox Code Playgroud)

编译成功.

我想知道问题出在哪里?为什么-45.3在这里不被认为是浮动?因为-34.5是类似的情况.

我正在使用Visual Studio 2015和Windows 10.

谢谢.

c++ arrays stl vector

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

NSight attach 显示没有可用的进程

我有一个奇怪的问题,当尝试使用 NSight 附加应用程序时,列表中没有显示可用的进程。

我正在尝试调试 CUDA 代码。所以我将我的 VS2012 项目附加到一个应用程序(MATLAB)。它曾经工作得很好,但直到昨天还没有可用的过程以某种方式附加。奇怪的。

这是我所做的事情:

  1. NSight 5.0 设置: 在此处输入图片说明 在此处输入图片说明

  2. 环境NSIGHT_CUDA_DEBUGGER = 1中的个人和系统设置。 在此处输入图片说明

  3. 打开VS2012项目->工具->附加到进程->Nsight GPU调试器 在此处输入图片说明 在此处输入图片说明

在步骤 3 中,没有显示任何处理。一旦我选择了 Nsight GPU Debugger 和我的本地主机,Nsight 就会说它已经连接了。

我使用的是 VS2012 Pro、Windows 7、CUDA 7.5 和 Nsight 5.0。任何帮助是极大的赞赏。

debugging cuda visual-studio-2012 nsight

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

传递一个结构为vector的结构

我有一个构建dll的类,作为单个解决方案实现.在它的头文件中,我有一个结构,其成员是vector.喜欢以下;

// dll.h

    struct ScanParam16
    {
        // int param
        int nChanDetX, nChanDetZ;
        int nViewPerRot, nViewPerSlice, 
            nChanDetXPerMod; 
        int nImgXY, nImgZ;  
        int nSlicePerProcess, n2Group;
        int FFTLen;

        // float param
        float pitch;
        float isoOffX, isoOffZ;
        float fov, dfov;
        float imgCentX, imgCentY, imgCentZ;
        float sdd, srad, drad;
        float dDetX, dDetZ, dDetU, dDetV, interModGapX, dDetSampleRes;

        std::vector<float> winArray;

        bool interleave;

        // enum
        bpInterpType16 iType;
    };
Run Code Online (Sandbox Code Playgroud)

在调用此dll的代码中,向量winArrar的值如下:

// caller.cpp
    static ScanParam16 param;
    param.FFTLen = 2048;
    float* wArray = new float[param.FFTLen];
    GenKernCoef(wArray, param.FFTLen, kType, ParaDataFloat, aram.dDetSampleRes);
    std::vector<float> v(wArray, …
Run Code Online (Sandbox Code Playgroud)

c++ parameters struct vector parameter-passing

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

2D 插值导致 OverflowError: Too much data point to interpolate

我正在将球坐标网格上采样的信号映射到柱坐标网格。显然两者都不是统一的网格。两个网格的大小均为 256 X 864(行 X 列)。

所以我尝试了这样的事情:

f = interp2d(x, y, z, kind='cubic')
zz= f(xx, yy)
Run Code Online (Sandbox Code Playgroud)

这里,

x, y = meshgrid(spherical_x, spherical_y)
xx, yy = meshgrid(cylindrical_x, cylindrical_y)
Run Code Online (Sandbox Code Playgroud)

一维方向上所有的spherical_x, spherical_y, cylindrical_x, and cylindrical_y都是不均匀的。

当我运行 interp2D 时,出现一条错误消息,其中显示:

  File "C:\Users\MyComputer\AppData\Local\Continuum\anaconda3\lib\site-packages\scipy\interpolate\_fitpack_impl.py", line 48, in _intc_overflow
    raise OverflowError(msg)

OverflowError: Too many data points to interpolate
Run Code Online (Sandbox Code Playgroud)

所以,我想知道我将如何使用 Python/NumPy/SciPy 进行这种非均匀 2D 插值?我知道有一个rectbivariatespline,但似乎你的原始数据必须位于统一的网格上。谢谢。

python interpolation 2d numpy scipy

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