引用:
Originally posted by giligula
你說的沒錯
但是用這種方式留言
不寫程式的能看得懂嗎
而且並不是用 Windows API 寫
就能在所有 OS 下執行
不同 OS 有差異性
而且微軟在新 OS 推出後
API 也會同時改變
一些不適用的 API 也會建議改用其他函式使用
我希望大多數人能看懂
而不是用一堆技術名詞像 component object model 這種東西去堆
|
1.小弟只是指出你錯用了Windows API這個名詞。
小弟天天跟Win32 API打交道,
當然知道Win32 API在各個平台的behavior還是有差異性。(這真的會整死人)
所以我特別加了個"理論上"...
事實上這些差異性有許多都是因為訂API時不夠謹慎有關係,產生很多模糊地帶。
寫程式一不注意時可能就會導致換到別的Win32 platform上後無法執行。
2.軟體工程的大忌,就是去動到既有的Interface,(這也是後來為何M$會搞出COM(Component Object Model)的原因之一)
所以微軟在新的OS推出時,絕對不會去改變既有的API,而是新增API。
因為動到既有API的下場就是...既有APP死傷遍野。
若API真的設計不良時 or 該被淘汰時,
M$會建議developer"盡量"改用其他API,錯的就繼續讓它錯下去。(例如錯得離譜的GetVersion() vs GetVersionEx(),GetDiskFreeSpace() vs GetDiskFreeSpaceEx(),還有該淘汰的WinExec() vs CreateProcess())。