标题: 做过跨平台开发的请进(cygwin)
hanqitai
新生入学
Rank: 1



UID 215622
精华 0
积分 10(积分有什么用?)
帖子 8
阅读权限 10
注册 2007-10-23
状态 离线
发表于 2007-10-25 09:12  资料  个人空间  短消息  加为好友 
做过跨平台开发的请进(cygwin)

大家可能都用过linux下的mkisofs软件吧。它有用Cygwin编译成的win32版本,现在我想把它打包成一个dll,我想了三个方案,但还没有实施,请给个建议吧:Linux伊甸园论坛c&J`
I QP"]Y

(1)直接将所有POSIX的函数都改成windows提供的API,然后打包成mkisofs.dll ,编译出来的版本很彻底的摆脱了windows平台运行的一些限制。www.linuxeden.com/DRx?xM:[(d
Linux伊甸园论坛u8D/cda ]+?:x A
        困难:代码量非常大,工作量更大。 'xsU:d!QfLl1x![

j \_V%y7fd&_(2)在Cygwin环境下修改原有一些函数打包生成DLL文件,版本依赖cygwin1.dll的“翻译功能”
5_
[Y6Ng,m1ce
Linux伊甸园论坛:X"L6R WqH8q6j
(3)在VC环境下面重新构建项目,并调用cygwin1.dll链接库,并修改部分函数(类似方案2)重新编译成DLL文件,新版本同样依赖cygwin1.dll。sTonw Y

2]7B:Y@'j5r.o         困难:Cygwin官方并不提供这种直接的Win32调用Cygwin-DLL里面Function的能力.但非官方提供了某种途径用于Win32-EXE调用Cygwin-DLL
U8a0IZfD9]d{6^z yLinux伊甸园论坛
+dV;[bi0K
r-t
因为看起来第二种方案和第三种方案看起来比较简单些,所以我想先试一下第二种方案。

顶部
不容错过的IBM 集群技术资源汇总
flag
版主
Rank: 7Rank: 7Rank: 7
版主



UID 19801
精华 1
积分 28(积分有什么用?)
帖子 5581
阅读权限 100
注册 2002-7-19
状态 离线
发表于 2007-10-25 09:55  资料  个人空间  短消息  加为好友 
改成dll?用在什么上?你想怎么用?





上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。
顶部
不容错过的IBM 集群技术资源汇总
hanqitai
新生入学
Rank: 1



UID 215622
精华 0
积分 10(积分有什么用?)
帖子 8
阅读权限 10
注册 2007-10-23
状态 离线
发表于 2007-10-25 10:17  资料  个人空间  短消息  加为好友 
当然是用在windows上了,cygwin有将linux下的代码编译成exe或者dll的功能。我就是想把本来的exe文件打包成dll。

顶部
flag
版主
Rank: 7Rank: 7Rank: 7
版主



UID 19801
精华 1
积分 28(积分有什么用?)
帖子 5581
阅读权限 100
注册 2002-7-19
状态 离线
发表于 2007-10-25 10:33  资料  个人空间  短消息  加为好友 
没明白我的意思,你做成dll要干嘛?想在其他程序里调用?而且还是用函数方式调用?我是问你想怎么用。





上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。
顶部
hanqitai
新生入学
Rank: 1



UID 215622
精华 0
积分 10(积分有什么用?)
帖子 8
阅读权限 10
注册 2007-10-23
状态 离线
发表于 2007-10-25 10:46  资料  个人空间  短消息  加为好友 
呵呵,不好意思,理解错了。我把界面编写成了ocx控件,便于其他大程序集成,而且可以通过Web方式访问。这里我写了个isoManage.ocx模块(仿照UltraISO界面),想把mkisofs也该写成dll来被它调用。

顶部
flag
版主
Rank: 7Rank: 7Rank: 7
版主



UID 19801
精华 1
积分 28(积分有什么用?)
帖子 5581
阅读权限 100
注册 2002-7-19
状态 离线
发表于 2007-10-25 10:56  资料  个人空间  短消息  加为好友 
觉得调用dll的通常都是要写加载函数,可能要改源码,就是你说的第三种方案。第二种不晓得怎么用。
:b;klW|0t?Linux伊甸园论坛用cygwin编成dll之后,看看其输出函数是什么?不知道是不是加载就相当于运行了mkisofs程序呢?





上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。
顶部
不容错过的IBM 集群技术资源汇总
hanqitai
新生入学
Rank: 1



UID 215622
精华 0
积分 10(积分有什么用?)
帖子 8
阅读权限 10
注册 2007-10-23
状态 离线
发表于 2007-10-25 11:12  资料  个人空间  短消息  加为好友 
我也害怕这个,希望该改输出函数就行了。我把原有Main函数去掉,再修改相应函数为输出函数试试。估计没这么简单。。。。源码我已经编译成功了(cygwin下的gcc有bug,搞了半天才另装了个smake搞定),版主想研究我发给你,呵呵

顶部
flag
版主
Rank: 7Rank: 7Rank: 7
版主



UID 19801
精华 1
积分 28(积分有什么用?)
帖子 5581
阅读权限 100
注册 2002-7-19
状态 离线
发表于 2007-10-25 11:42  资料  个人空间  短消息  加为好友 
mkisofs用参数,起码你也要写输出函数接受参数然后调用main的代码。不过还不如直接调用mkisofs,ultraiso就是这样调用单独程序的吧。





上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。
顶部
hanqitai
新生入学
Rank: 1



UID 215622
精华 0
积分 10(积分有什么用?)
帖子 8
阅读权限 10
注册 2007-10-23
状态 离线
发表于 2007-10-25 12:41  资料  个人空间  短消息  加为好友 
回复 #8 flag 的帖子

对,ultraiso就是调用的isoCmd.exe。还得在论坛多逛逛,学学gcc编程。。。。

顶部
 



当前时区 GMT+8, 现在时间是 2008-5-17 05:58

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.055948 second(s), 5 queries

清除 Cookies - 联系我们 - Linux伊甸园 - Archiver - WAP