我用VC写了一个动态库,用VB写的程序使用这个动态库,现在做调试。我把VC这个动态库设置为先运行,并选择VB写的EXE程序来
启动这个动态库,启动后,VC动态库打得断点停不下来,当时的确是调到VC的动态库中去了,知道这是为什么吗? 怎样能使断点停下来??

解决方案 »

  1.   

    直接在c函数中调用DebugBreak,保证能停,除非该函数没有被调用
      

  2.   

    楼上的我试过了
    在VC代码上加上_bebugBreak后
    VB程序调进去后就没反映了 程序几乎死在哪了
    没能进入调试状态
      

  3.   

    我也想知道,我曾经看到我们主管,用VB调用VC的DLL,先运行VB,然后会进入VC的断点,但当时没看到他是怎么操作的.
      

  4.   

    我刚用VS2005测试了一下,建了个Win32标准DLL,随便写了个输出函数,然后在函数里设了个断点
    用VB写了个程序,调用VC的输出函数。然后在VS的Debug模式下设置该程序路径,按F5运行
    VS的执行可以停下来啊~~~~~~不过没用过VC,所以不好发表言论。
    VB代码(设Sub Main启动):'Module.mdl
    Option ExplicitPrivate Declare Function OutputTest Lib "VB2VS.DLL" () As LongSub Main()
        MsgBox OutputTest
    End SubC++代码(stdafx.h):// stdafx.h : 标准系统包含文件的包含文件,
    // 或是经常使用但不常更改的
    // 特定于项目的包含文件
    //#pragma once// 如果必须将位于下面指定平台之前的平台作为目标,请修改下列定义。
    // 有关不同平台对应值的最新信息,请参考 MSDN。
    #ifndef WINVER // 允许使用特定于 Windows XP 或更高版本的功能。
    #define WINVER 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
    #endif#ifndef _WIN32_WINNT // 允许使用特定于 Windows XP 或更高版本的功能。
    #define _WIN32_WINNT 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
    #endif #ifndef _WIN32_WINDOWS // 允许使用特定于 Windows 98 或更高版本的功能。
    #define _WIN32_WINDOWS 0x0410 // 将此值更改为适当的值,以指定将 Windows Me 或更高版本作为目标。
    #endif#ifndef _WIN32_IE // 允许使用特定于 IE 6.0 或更高版本的功能。
    #define _WIN32_IE 0x0600 // 将此值更改为相应的值,以适用于 IE 的其他版本。
    #endif#define WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料
    // Windows 头文件:
    #include <windows.h>// TODO: 在此处引用程序需要的其他头文件stdafx.cpp// stdafx.cpp : 只包括标准包含文件的源文件
    // VB2VS.pch 将作为预编译头
    // stdafx.obj 将包含预编译类型信息#include "stdafx.h"// TODO: 在 STDAFX.H 中
    // 引用任何所需的附加头文件,而不是在此文件中引用VB2VS.CPP// VB2VS.cpp : 定义 DLL 应用程序的入口点。
    //#include "stdafx.h"
    #ifdef _MANAGED
    #pragma managed(push, off)
    #endifBOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
     )
    {
        return TRUE;
    }#ifdef _MANAGED
    #pragma managed(pop)
    #endifint WINAPI OutputTest()
    {
    return 1; //在这里设了断点
    }VB2VS.DEFLIBRARY "VB2VS"
    EXPORTS
    OutputTest
      

  5.   

    我用的是VB调VS写的COM对象
    还是不行呀