![]() |
1
12
它非常简单:包和动态链接。
BPL是DLL。DLL是通过被修补的表链接起来的,而不是EXE或DLL中的所有代码与被修补的DLL链接起来(这对多个进程之间共享只读内存会造成很大的伤害)。为了防止引用
在本程序中,静态链接与针对BPL链接的区别很容易看出:
在我的本地机器上,用
但是当用RTL包编译时
希望这能解决问题。 |
![]() |
2
1
不完全了解发生了什么,但当你看一个例子
当您查看ClassInfo方法时,它返回一个简单指针,其值似乎与vmt表相关:
因此,TypeInfo结构前面指向TypeInfo结构的四个字节在设计上似乎是存在的,并且是vmt结构的一部分。 编辑
更新
前三个产生梅森描述的结果。我只添加了一个额外的writeln来显示最后一个writeln的指针值。tryrttitstuff中的最后一个调用是显示当您没有传入指向有效TypeInfo结构的指针时,您不会在调用的第一个和第三个writeln上获得相同的值。 还不知道TypeInfo是怎么回事。也许我们应该问巴里凯利,因为他是新的D2010 RTTI的作者,所以应该知道很多关于旧的以及。。。 |
![]() |
3
0
可能是一个恰好在连续内存中的链表:) |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 4 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 5 月前 |
![]() |
tTt · 使用堆栈中的值重新分配指针 5 月前 |
![]() |
manuel · 现代C中空指针的替代方案++ 6 月前 |
![]() |
CPlus · 有没有一种方法可以确定指针的表示在C中是否是“线性的”? 10 月前 |