关于cygwin跨平台

bluesnail1986 2014-05-03 08:26:39
想用dwarf,但本身不支持windows,所以只能在cygwin下编了一个dll。在网上看到,cygwin编出的dll是不能直接在VC下使用的,援引几个blog:
http://cygwin.com/ml/cygwin/2004-06/msg00274.html
http://blog.csdn.net/songbohr/article/details/5276128
http://blog.csdn.net/gugu1313/article/details/5425805
但是其中有几个疑问:
1、通过增加my_crt0.c来修改入口。为何一定要增加my_crt0()这个函数?这个函数最终还是调用cygwin_crt0(),为什么不直接把crt0.c这个文件编进去...?我本地的cygwin里,这个文件里调用的就是cygwin_crt0(),不能直接用?
2、按照网上这些方法,必须要修改VC的入口mainCRTStartup(),可是我的工程是GUI的,是不是要修改WinMainCRTStartup?这样简单的修改不行的吧,VC界面那些初始化的动作怎么能这么简单地替换掉?
等专家的回复~~
...全文
163 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluesnail1986 2014-05-05
  • 打赏
  • 举报
回复
引用 楼主 bluesnail1986 的回复:
想用dwarf,但本身不支持windows,所以只能在cygwin下编了一个dll。在网上看到,cygwin编出的dll是不能直接在VC下使用的,援引几个blog: http://cygwin.com/ml/cygwin/2004-06/msg00274.html http://blog.csdn.net/songbohr/article/details/5276128 http://blog.csdn.net/gugu1313/article/details/5425805 但是其中有几个疑问: 1、通过增加my_crt0.c来修改入口。为何一定要增加my_crt0()这个函数?这个函数最终还是调用cygwin_crt0(),为什么不直接把crt0.c这个文件编进去...?我本地的cygwin里,这个文件里调用的就是cygwin_crt0(),不能直接用? 2、按照网上这些方法,必须要修改VC的入口mainCRTStartup(),可是我的工程是GUI的,是不是要修改WinMainCRTStartup?这样简单的修改不行的吧,VC界面那些初始化的动作怎么能这么简单地替换掉? 等专家的回复~~
哥们儿,难道我这80分就这么给你啦~~
bluesnail1986 2014-05-04
  • 打赏
  • 举报
回复
木有人回复么... 刚刚试了下,可以调用dll里很简单的函数(例如直接return一个值),但是调到一个用到open()的函数,就出现Access Violation了,看来还是要执行cygwin_crt0()的,只是这个函数怎么和VC的winMainCRTStartup()兼容呢?
braveboyny 2014-05-03
  • 打赏
  • 举报
回复
虽然我没用过,不过看起来很牛B的样子。

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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