在VC ++中测试DLL无法进入函数

时间:2015-10-14 17:10:07

标签: c++ windows dll

我使用Visual Studio 2008专业版在VC ++中创建了一个DLL,我试图测试(调试)它! 所以我做了另一个项目,但当我尝试进入一个班级时,我只是向前迈进了一步。

我也尝试点击该类并转到定义(它看起来无法加载符号)

我尝试使用工具>>选项>> Debuging>>符号来添加.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);

1 个答案:

答案 0 :(得分:0)

我设法解决了我的问题: 我在配置属性&gt;&gt;调试我的测试解决方案中将“调试器类型”更改为“混合”

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