水木社区手机版
首页
|版面-顽强生存着的DOS(DOS)|
新版wap站已上线
返回
1/1
|
转到
主题:dos 底下有统一的 c 调用约定吗?
1楼
|
jyw
|
2023-03-14 00:25:43
|
展开
cdecl 啊
【 在 hgoldfish 的大作中提到: 】
: pascal 调用约定肯定用 borland 家的,那么 C 语言的话,巨硬和 borland 家有没有统一的调用约定?
--
FROM 61.48.98.*
3楼
|
jyw
|
2023-03-14 12:30:24
|
展开
嗯,惭愧
打各个发行版的包有点麻烦,另外现在工作也忙,能抽出大块时间不多
想找个假期再修俩问题,然后把 3.2 发了
【 在 sosei 的大作中提到: 】
: wxMEdit好多年不维护了啊
--
FROM 61.48.98.*
6楼
|
jyw
|
2023-03-14 20:02:55
|
展开
不能记住编码这个我看下
编码识别这块是用的 ICU 基于统计模型的识别方式,是可能有一些误差
如果是问题还挺普遍可以私聊找我看
【 在 sosei 的大作中提到: 】
:
: 天天用这个在win下写程序
: 这个这个,对字符编码识别能力不强
: ...................
--
FROM 61.48.98.*
7楼
|
jyw
|
2023-03-15 18:47:35
|
展开
是默认的
我查了下资料,比如这个:
https://www.agner.org/optimize/calling_conventions.pdf
然后还做了个实验,用微软的 Quick C 写个函数,用 Turbo C 来调,不过这个得用 Quick C 的 link 来链接,用 tlink 链接会报找不到 Quick C 的库:
// func.c
int func(int a, int b)
{
printf("hello %d\n", a + b);
return 0;
}
// main.c
int main()
{
return func(1, 2);
}
编译:
qcl -c func.c
tcc -c main.c
链接:
link main func
运行:
main
输出
hello 3
【 在 hgoldfish 的大作中提到: 】
: 这个是默认的吗?还是说需要特别指定 extern "c" {} ?
--
修改:jyw FROM 61.48.98.*
FROM 61.48.98.*
8楼
|
jyw
|
2023-03-15 19:05:46
|
展开
func.c 和 main.c 这俩文件任一个用 qcl 编译都会带上要链接的库(我用 dosbox-x 里是 slibce.lib),所以都可以直接 link main func 来链接成功。
但是如果两个都用 tcc 编译,其实也可以用 link 链接成功,只是交互输入过程手动填一下库 slibce 就可以了。
【 在 jyw 的大作中提到: 】
: 是默认的
: 我查了下资料,比如这个:
:
https://www.agner.org/optimize/calling_conventions.pdf
: ...................
--
FROM 61.48.98.*
12楼
|
jyw
|
2023-03-16 19:12:02
|
展开
确实介绍的不多,现在想搜一些当年的资料比较难
我看各家编译器都有选项去指定内存模式,这块我还没细了解
应该不都是远跳转,不同内存模式的目标文件很可能无法一起链接
比如上面提到的 slibce.lib 的 s 应该就是 small 模式,e 是模拟浮点指令
【 在 hgoldfish 的大作中提到: 】
: 那 c 调用约定指令跳转使用的内存模式是啥?你发的这本书好像讲到 DOS 的不多啊。
: 用的一定是远跳吗?
--
修改:jyw FROM 114.244.234.*
FROM 220.194.45.*
13楼
|
jyw
|
2023-07-12 20:30:28
|
展开
最近发新版了,编码识别不准可能还会存在,不过应该能够记住编码了
有任何问题可以随时私信我,或者直接 github 上提 issue 都可以
【 在 sosei 的大作中提到: 】
:
: 天天用这个在win下写程序
: 这个这个,对字符编码识别能力不强
: ...................
--
FROM 220.194.45.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版