我的一个ActiveX控件,其中既使用了C,又使用了MFC的多线程,用use MFC in a shared DLL编译生成ocx,IE中使用是OK的,改用use MFC in a static Library,编译生成ocx,ocx被IE调用并运行后,IE报错并且关闭,请问是个什么原因?现在完全没有思路,请大家给个方向。^_^
解决方案 »
- 20分求教一个垃圾问题
- 网上扩展ListCtrl类SortListCtrl排序时列头上箭头和标题文字显示问题(列表控件排序功能的实现)
- 如何从service程序,向前台界面程序发送数据呢?
- 如何在程序里面更改对话框的字体大小,急!!
- 谁会在outlook的新建邮件时弹出的新窗口中加入新按钮,并能实现功能
- 如何对mp3文件进行编程,或者是MP3格式解析,(像BMP有个文件头,什么的),另觅多媒体编程资料
- 在vs.net中如何去掉这个警告
- 请教64位除法
- 我的一个类在classview里能看见两个同名的类,真不方便,该怎么解决?
- 指针操作堆中数组的问题,求助啊
- 发送哪个消息,可以使无边框窗体也可以托动边框?
- 发现一个不错的资源,想了解 VS 2005 的朋友请进
/MD
编译生成 ocx, IE 运行normal
/MT /MTd编译不过 ----
use MFC in a static lib
/MT
编译生成ocx, IE 调用出错关闭/MD /MDd 编译不过
can anybody give some suggestion ? ^_^
我现在也在做一个activeX,在debug模式下都OK,编译成release模式就会出错,也是一头雾水
1、在Debug版本的shared Library 可以成功运行并没有任何问题
2、在Debug版本的Static Library 状态下不能成功运行,跟进去发现报的是“0xC0000005 access violation”错误。具体代码行是(*pSocket)->Create();但(*pSocket)比较两种情况下pSocket指针的内容是一样的,都是正常的指针。
考虑到只是对MFC类库的引用方式不同,所以应该不是数组越界等错误。在微软主页上查询到“Windows XP SP2 中的数据执行保护功能的详细说明”中提到XP的sp2补丁对数据执行保护 (DEP)可能会造成这种错误,关闭DEP重启机器,问题依旧。不知道那位大哥对这个问题有研究,帮忙看看。谢谢~~~~
你的意思是socket用到多线程后在静态编译的时候的情况吗?我这里虽然是用到多线程,但准确的来说是两个线程,socket部分用一个线程,还有一个线程是做其他的事情。和socket无关。