VC/MFC
VB
Delphi
C++ Builder
C/C++
Java
.NET技术
MS-SQL Server
PowerBuilder
DB2
Oracle
Web 开发
Linux/Unix社区
硬件/嵌入开发
移动平台
您的位置:
程序门
->
vc/mfc
-> 进程/线程/dll
dll与exe传递空指针问题
[
收藏此页
] [
打印本页
]选择字色:
默认
灰色
红色
黄色
绿色
橙色
紫色
蓝色
褐色
墨绿
深蓝
赭石
粉绿
淡绿
黄灰
翠绿
综红
砖红
淡蓝
暗红
玫瑰红
紫红
桔黄
军黄
烟灰
深灰
灰蓝
背景色:
默认
黑色
红色
黄色
绿色
橙色
紫色
蓝色
褐色
墨绿
深蓝
赭石
粉绿
淡绿
黄灰
翠绿
综红
砖红
淡蓝
暗红
玫瑰红
紫红
桔黄
军黄
烟灰
深灰
灰蓝
字体:[
大
][
中
][
小
]
dll与exe传递空指针问题
[已结贴,结贴人:zszszs1983]
发表于:
2007-05-11 09:31:00
楼主
我的dll中有函数:
extern "c " __declspec(dllexport) xx* jlda()
返回一个null的指针
但是在exe中当
xx* a;
a = jlda();
if判断后a却不是null;为啥?
发表于:
2007-05-11 09:35:24
1
楼 得分:
0
把jlda的代码贴出来
发表于:
2007-05-11 09:36:45
2
楼 得分:
0
return null;
没了,做个测试用用
发表于:
2007-05-11 09:47:07
3
楼 得分:
50
没指定调用规则,看看这有没有影响。
另外,你可以在执行a = jlda();的时候断点查看调用的汇编,jlda()中应该有
mov eax, 0
ret
或等效指令,
在call jlda之后应该有
mov [ebp+4], eax //返回值送a,[ebp+4]为局部变量a在栈中地址,可能会有不同如[ebp+8]等
看看此时eax是0吗
发表于:
2007-05-11 09:54:38
4
楼 得分:
0
指定调用规则?能帮忙举个例子么?
发表于:
2007-05-11 09:57:40
5
楼 得分:
0
__stdcall
发表于:
2007-05-11 10:19:59
6
楼 得分:
0
问题我用__declspec来声明dll中的导出函数的
发表于:
2007-05-11 10:20:59
7
楼 得分:
0
用__stdcall也可以么?
发表于:
2007-05-11 16:11:07
8
楼 得分:
0
没回答的了么,顺道问问,dll怎么调试跟踪啊,断点怎么设啊?
发表于:
2007-05-11 16:15:01
9
楼 得分:
5
调用约定也是需要的,再看看你反回的指针是否无效
发表于:
2007-05-12 10:22:13
10
楼 得分:
0
指针返回的不是null了,而是一个别的地址,如何判断好呢
发表于:
2007-05-12 10:32:26
11
楼 得分:
0
没遇见过这个问题,关注一下
发表于:
2007-05-16 16:22:43
12
楼 得分:
0
晕啊,100分啊,没人能回答了么,全部奉送啦
发表于:
2007-05-16 16:46:49
13
楼 得分:
0
我试了,可以返回null
发表于:
2007-05-16 16:53:36
14
楼 得分:
40
你可以试试:
dll文件:
头文件
#ifdef test_h_h
#else
#define test_h_h extern "c " _declspec(dllimport)
#endif
test_h_h int* aa();
实现文件:
#define test_h_h extern "c " _declspec(dllexport)
#include "666.h "
#include <stdio.h>
int * aa()
{
return null;
}
测试程序代码:
int main(int argc, char* argv[])
{
int * a;
int m=0;
a=&m;
a=aa();
if(a==null)
cout < < "aaaaaaa " < <endl;
return 0;
}
发表于:
2007-05-16 17:03:08
15
楼 得分:
0
明天试,今天下班了,谢谢你先,能用再好好谢你,呵呵
发表于:
2007-05-16 18:15:32
16
楼 得分:
5
和你的dll有关,需要使用 相同的调用约定
发表于:
2007-05-17 09:52:55
17
楼 得分:
0
测试程序代码能写详细点么,包含文件也写出来
发表于:
2007-05-17 13:59:33
18
楼 得分:
0
// testdll.h ----------------------
#ifndef _testdll_h_
#define _testdll_h_
#ifdef testdll_exports
#define testdll_api __declspec(dllexport)
#else
#define testdll_api __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "c " {
#endif
typedef xx int;
testdll_api xx* __stdcall jlda();
#ifdef __cplusplus
}
#endif
#endif // _testdll_h_
// testdll.cpp ---------------------
//#define testdll_exports
#include "testdll.h "
xx* jlda()
{
return null;
}
// main.cpp ------------------------
#include <windows.h>
#include "testdll.h "
int main(int argc, char* argv[])
{
xx* a;
a = jlda();
if(a==null)
printf( "a is null.\r\n ");
}
发表于:
2007-05-17 14:04:26
19
楼 得分:
0
调试dll:
vc打开dll工程,菜单project--> settings,debug页,EXECutable for debug session选择加载该dll的exe,ok,在dll函数中设断点,执行……
发表于:
2007-05-23 11:37:43
20
楼 得分:
0
给分了,不试了,这个问题跳过去了
下一篇:
hook两小问
上一篇:
mfc调用mfc做的dll出错,新手100分求救
相关文章
关于自绘菜单去边
关于domodal问题,高手请进,急!!!在线等
菜菜~修改ip地址
窗体位置大小不变
请问,如何实现从c程序回叫web activex控件...
大家帮一下忙吧
recv无法执行下去
hid类设备向usb口读写数据??
散分!看了半年的驱动,终于安装上helloworld复杂...
关于globallock和globalunlock
vc++ excel操作
内存溢出问题
如何才能使窗口的右边框加宽?(解决问题马上给分...
为什么我的程序,调试可以通过,而运行却不行.
有关动态数组和函数传值的问题,请高人指点...
关于c#
关于clistctrl列头颜色的问题
关于静态文本框刷新问题?
如何在一个视频流窗体上画一个矩形
wsprintf的错误,头疼ing
其他资讯
打印问题
csocket初始化问题
hook了send、recv、sendto、recvfrom qq也确...
用debug模式启动进程的问题~
full control怎么保存大量数据
请推荐一款好的用c++/c写的ui库
请问使用opengl如何绘制3d全景图?
vc sql数据库转成access数据库的问题
对话框窗口最小化的问题
界面的跳转
edit 如何读出小数,急!!!
vc难题
如何用vc设置通过代理服务器打开网页???十万火...
网络听诊管理监控系统源代码(vc源码大小500m)
全局函数里使用视图
一般的问题
怎样判断鼠标点击在一个不规则的区域
vc使用soap和com进行通信或者说soap访问com的接口...
请sokewoniu(缩壳蜗牛)来接分, 非常感谢你...
一段程序看不懂,高手帮忙读一下,好像是关于读进内...
快速检索
分类导航标签a
软件工程/管理Power Designer
其他开发语言Kylix
Windows专区一般软件使用
企业开发Lotus
Web 开发Java
扩充话题程序员英语
C/C++C++
硬件使用交换及路由技术
DelphiGAME
Linux/Unix社区GForge
.NET技术ASP.NET
.NET技术ASP.NET
其他开发语言脚本语言(Perl ,Python)
Windows专区Tivoli
Web 开发ASP
最新资讯
帮忙解释一段代码
java搜索域服务器的结果只有1000个!!急求解.
cricheditview的wm_paint消息如何处理?
获取即时聊天信息
如何实现服务器推送技术
如何开发插件式结构的软件
一个简单的数据库查询问题:如何选择从某个起点到...
关于wps的二次开发问题(宏和图表)附delphi生成并...
[求助] pb7打印出的票据会自动变大或变小,...
我的帖子《奉劝某女人……》 为何被删除?
什么时候回收垃圾
c#在桌面程序中怎么使用server.urlencode("汇编...
如何用c#将excel文件转化为xml文档
请问那里有卖:scjp,310-055的题库啊?
返回表型函数
二进制转换成十进制的汇编程序
美工好的进
一个非常重要的计算类型题,很重要的
水晶报表公式的高级使用,急,在线等!!
怎么用java做圆形按钮??
欢迎各位加入技术交流群,21590107
google欧洲大规模招聘工程师
!hp6612c hp66309d电源现货特价出售.何先生...
网卡不能识别
项目外包,愿意接收的请进■■■■■■
长沙涉外软件公司诚聘pb软件开发人员(有效期至2...
为什么运行总是提示数据库连接失败?
水晶报表里的text赋值问题
sql一个库与库之间的数据调用问题
squid如何控制代理走不同的网关
请问如何得到起始和结束日期
能否在各个板块都加一个置顶贴,说明如何结...
请大家帮忙推荐工作流软件,谢谢
需要作网站的朋友请联系我们
这种sql语句怎么写?把不同记录中的内容显示在同一...
网络高手进
asp.net 实现每天定时完成某一功能?
【招聘】c#系列图书兼职作者
数组组合
linux as4.0下利用cron实现oracle定时备份问...
热门点击
在weblogic 9.2下面怎样发布一个.war包?&nb...
公文上传的问题
怎样查询activex控件的idispatch接口每个id代表函...
有个打印程序,重作系统之后就不好用了。有达人帮...
怎样给二级链表动态分配存储空间呢,谢谢
button1中生成的datatable在button2中怎么访问呀...
嵌套事务为什么不能够回滚到我想要的保存点?
我想用adp的方式来做程序,是不是access2003才可...
java中,怎么知道今天是几号?java的作者为什么要...
遍历treeview的所有子节点。
发帖就送分!还有图书、杂志、百元购书券免费送!...
我在网上找了段js代码,让存为存为带签名的utf-8...
如何去掉第三方程序toolbar中的一部分按钮?
问一个参数的问题
vc2005中打开excel2003的问题
八段若愚,九段藏拙
用ajax的xmlhttp.send(data)向后台发送请求的时...
如何在treectrl中动态添加树项?
诚征上海java开发人员
程序不错,为何不能仿真
oracle查询中遇到的一个问题
关于mfc扩展dll的问题
vs2005学习群,大家来加入,增加人气 群号:...
关于微软 rms 加密
100分求jsp开发环境配置?
小问题,求高手,有分
no compile ...
关于对话框中的属性页
spring 的事物属性怎么设置 timeout&n...
公交查询系统 数据库设计
请大家推荐用java编写webservice入门级的资料
打算系统学习网络编程.指点一下学习路线吧.
寻求网络直播的解决方法
请问语句里&和+的区别
¦m¦ 如何在一个用页打印另一个...
如何和系统窗口交互?
在firefox2中改变<div><li><em&g...
双线主机该选哪家的好呢
求解一道sql题
发布tongbase v1.0.0 内存数据引擎测试...