这不科学 ,MIDL 怎么了 ,VS6 升级到 VS2013 碰到的问题

hbs_biscuit 2014-10-27 10:08:40
大家好:
activex 编译碰到问题了 ,原来写了一个组件(VS6 MFC),在 VS6 下面都是好好的 ,也可以被别的程序使用。

最近将 这个组件的编译迁移到 VS2013 并且在2013下开发 了一个 ATL 控件,想嵌入这个 activex组件,但是碰到了问题,

首先是 MBCS 的问题 ,通过在微软官网下载 MBCS 库 编译成功了 ,接下来就碰到了 Type Library 的问题, 显示 ODL 文件编译报错,将 MkTypeLib Compatible 由 Yes(/mktyplib203) 改为 NO 就可以编译通过了 。

现在问题出现了 ,通过 ole view 打开 类型库 ,发现 有些返回是 long 的方法 ,被识别成为了 char ,在其他程序中如果 #import 类型库的话 ,不能识别出方法和属性 ,打开 生成的 tlh 文件, 发现 方法,属性,事件一律未生成 ,只生成了 smartptr 和如下内容

struct __declspec(uuid("80b928a0-27ae-4151-abb3-5a3e2d450f06"))
_DXSPhoneActiveX : IDispatch
{};

方法,和属性,事件 一律没有生成

这是什么原因呢 ,有谁有经验可以指导一下 ,多谢了!!
...全文
282 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbs_biscuit 2014-11-21
  • 打赏
  • 举报
回复
已经改好了,谢谢大家 , odl 和IDL 还是有一些差别
jianghandaxue 2014-10-28
  • 打赏
  • 举报
回复
低版本VC向高版本移植,会有隐患问题,语法向高版本更加严格
许文君 2014-10-28
  • 打赏
  • 举报
回复
重新创建一个空工程,把IDL里内容以及代码相应拷贝过去这种笨办法肯定可行。
笨笨仔 2014-10-27
  • 打赏
  • 举报
回复
VC6程序向VS2013迁移,其实涉及的方面有很多,比如变量定义,字符集等,若一定要迁移,可边编译边逐行修改。
快乐鹦鹉 2014-10-27
  • 打赏
  • 举报
回复
OCX搞过,但还没有干过升级到2013......

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧