用VB写的程序来调用VC的动态库,为什么断点进不去? 我用VC写了一个动态库,用VB写的程序使用这个动态库,现在做调试。我把VC这个动态库设置为先运行,并选择VB写的EXE程序来启动这个动态库,启动后,VC动态库打得断点停不下来,当时的确是调到VC的动态库中去了,知道这是为什么吗? 怎样能使断点停下来?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接在c函数中调用DebugBreak,保证能停,除非该函数没有被调用 楼上的我试过了在VC代码上加上_bebugBreak后VB程序调进去后就没反映了 程序几乎死在哪了没能进入调试状态 我也想知道,我曾经看到我们主管,用VB调用VC的DLL,先运行VB,然后会进入VC的断点,但当时没看到他是怎么操作的. 我刚用VS2005测试了一下,建了个Win32标准DLL,随便写了个输出函数,然后在函数里设了个断点用VB写了个程序,调用VC的输出函数。然后在VS的Debug模式下设置该程序路径,按F5运行VS的执行可以停下来啊~~~~~~不过没用过VC,所以不好发表言论。VB代码(设Sub Main启动):'Module.mdlOption ExplicitPrivate Declare Function OutputTest Lib "VB2VS.DLL" () As LongSub Main() MsgBox OutputTestEnd 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"EXPORTSOutputTest 我用的是VB调VS写的COM对象还是不行呀 在线等~~~~有答案立马给分~~~~ datasource问题!!! VB6数据库查询问题 标准表达式中数据类型不匹配 历史QQ群 请问MsFlexGrid带打印预览吗? 这条语句什么用? 如何去掉command上的虚线框阿? 急问vb 打包问题 ADODC +access 求日历控件(vb的comm32老是版本不同要重新做一次) VB中怎么根据前两个文本框的信息得出第三个文本框的值,第三个文本框做成下拉菜单 向集合中添加不重复项 程序挂起的方法
在VC代码上加上_bebugBreak后
VB程序调进去后就没反映了 程序几乎死在哪了
没能进入调试状态
用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
还是不行呀