在vc++中测试DLL不能步进函数

Testing DLL in VC++ cannot step into a function

本文关键字:不能 步进 函数 DLL 测试 vc++      更新时间:2023-10-16

我使用Visual Studio 2008专业版在vc++中制作了一个DLL,我正在尝试测试(调试)它!所以我做了另一个项目,但是当我试图进入一个类时,我让它向前迈进了一步。

我也试着点击类,然后去定义(它出现不能加载符号)

我尝试在tool>>options>> debugging>>符号中添加.pdb文件的路径

我的代码作为dll声明

 #pragma once
 __declspec(dllexport) long sdk_init();
 //__declspec(dllexport) long sdk_release();
 __declspec(dllexport) long sdk_connect(long handle);
 __declspec(dllexport) long sdk_getObjectList(long handle);
 //__declspec(dllexport) long sdk_disconnect(long handle);
 __declspec(dllexport) long sdk_playStream(long handle, int idx);
 __declspec(dllexport) long sdk_stopStream(long handle, int idx);

然后是实现,例如~

long sdk_init(){
    CDataManager* m_DataManager = new CDataManager();
    int i = m_DataManager->InitXns();
    if(i == 0){
        return 0;
    }
    return (long) m_DataManager;
}

我不能进入的类是CDataManager,这是我创建的一个类。# include

using namespace std;
#include <list>
class CDataManager : 
    public IDeviceSink, 
    public IMediaSink  
{
    public:
        int InitXns(void);
        int Connect(int nDeviceId);
        int GetObjectList(void);
        int RequestLiveStream(int videoSource);
        int StopLiveStream(int videoSource);
    private:
        int  m_bInitXns;
        int login;
        //store in list?
        XNS_DEVICE2 m_sDevice;
        //safe store?
        XNS_OBJECT *m_pObject;
        XNS_OBJECT *m_pVideoSource;
    public:
        CDataManager();
        virtual ~CDataManager();
        int SetWnd(HWND hWnd);
        long OnResponse(XNS_REQUEST* pReq);
        long OnEvent(XNS_EVENT* pEvent);
        long OnVideo(UINT nMID, XNS_VIDEO_HEADER* pVideo);
        long OnAudio(UINT nMID, XNS_AUDIO_HEADER* pAudio);

我设法解决了我的问题:我将配置属性中的"调试器类型"更改为"混合">>调试我的测试解决方案

无论如何,我不明白为什么我需要这样做,如果有人是一个解释,请张贴。