Talk:Windows API: Difference between revisions

Content deleted Content added
wrappers: new section
Jamarr81 (talk | contribs)
 
(14 intermediate revisions by 4 users not shown)
Line 4:
{{afd-merged-from|Windows.pas|Windows.pas|01 December 2013}}
{{todo}}
 
== There is no such thing as Win64 ==
 
There is not a distinct "major version" of the Windows API called Win64. 64-bit editions of Windows implement Win32. It's the same interface. Even the "Getting Ready for 64-bit Windows" article cited to support the notion that there is a Win64 is part of the Win32 documentation set (and it never says "Win64").
 
The reason Win32 is distinct from Win16 is that the API changed in incompatible ways. For starters, Win16 was the API for an OS that used cooperative multitasking, but Win32 used pre-emptive multitasking, so there were swaths of new functionality (e.g., synchronization objects, virtual memory), fundamental changes to the input and event models, reorganization of the fledgling Windows Registry, and the introduction of long file names. These changes had repercussions that required redesign to portions of the API. Some functions (notably many that dealt with window messages) had to be called with different parameters. To ease porting from Win16 to Win32, message-crackers and the Win32s overlay were offered to paper over some of the breaking changes. But most program required some changes to work with the new API.
 
For 64-bit systems, the API did not need to change in incompatible ways. The _ABI_ is different (pointer sizes, calling conventions, etc.). Details of the implementations may be different. But the _API_ is the same. The same functions accept the same parameters and return values have the same meaning.
 
If a Windows program cannot be compiled for both 32- and 64-bit systems, it's due to a non-portable assumption baked into the code about pointer sizes or ranges of representable values—it's not because of an incompatible difference in the Windows API.
[[User:Aidtopia|Aidtopia]] ([[User talk:Aidtopia|talk]]) 14:58, 13 April 2024 (UTC)
:The article says that "Both 32-bit and 64-bit versions of an application can be compiled from one codebase, although some older API functions have been deprecated, and some of the API functions that were deprecated in Win32 were removed." The disappearance of deprecated-in-Win32 functions might constitute an API change, although a citation for the claim that some APIs were removed should be provided. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 22:21, 13 April 2024 (UTC)
 
== API or rather ABI? ==
Line 15 ⟶ 27:
"Internet Explorer has been an integrated component of the operating system since Windows 98, and provides web related services to applications [10]. The integration will stop with Windows Vista."
 
This seems to contradict [http://www.microsoft.com/windowsvista/features/foreveryone/ie7.mspx Microsoft's publications] <!-- Template:Unsigned --><small class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:ItsProgrammable|ItsProgrammable]] ([[User talk:ItsProgrammable#top|talk]] • [[Special:Contributions/ItsProgrammable|contribs]]) 21:45, 25 November 2006 (UTC)</small>
 
== Windows API not property of Microsoft ==
"Windows API is basically considered not the property of Microsoft as is its implementation."
 
:What does this mean? <!-- Template:Unsigned IP --><small class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/217.158.203.79|217.158.203.79]] ([[User talk:217.158.203.79#top|talk]]) 12:47, 8 May 2003 (UTC)</small>
:What does this mean?
 
::Better now? -- [[User:Tim Starling|Tim Starling]] 01:43 26 May 2003 (UTC)
Line 52 ⟶ 64:
== .NET ==
 
Doesn't the .NET winFX unnecessarily complicate it? Pretty much the only thing they have in common are that they are "an" API and run on "Windows" (and the latter even is not fully decided). "The windows API" is the native one. The .NET api's are different ones, I'd keep that apart. <!-- Template:Unsigned IP --><small class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/84.35.41.43|84.35.41.43]] ([[User talk:84.35.41.43#top|talk]]) 20:30, 25 April 2006 (UTC)</small>
 
:Yeah, I'd agree. The "Windows API" to me means the C/C++ and maybe the VB APIs, but .NET is entirely new and is no more "Windows" than Java is. The only parts that are really Win32 specific are S.W.F and some of the low level OS semantics. Maybe that section should just be dropped, or rewritten to point to the main .net article?
Line 132 ⟶ 144:
 
The Pascal calling convention was used because it saves on code size. That doesn't mean that the Pascal language was used. This fallacious claim should have a citation. <small class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/50.159.105.93|50.159.105.93]] ([[User talk:50.159.105.93|talk]]) 18:44, 20 June 2015 (UTC)</small><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
 
I'll bet Raymond Chen knows whether it is true. -steve <!-- Template:Unsigned --><small class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar#top|talk]] • [[Special:Contributions/Stevebroshar|contribs]]) 11:56, 29 January 2024 (UTC)</small> <!--Autosigned by SineBot-->
 
== Infobox ==
Line 146 ⟶ 160:
 
Suggestion: KISS -- remove the list of categories [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 11:22, 29 January 2024 (UTC)
 
:Half measure: Added "notable" so that there is no need to be complete. [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 13:14, 18 October 2024 (UTC)
 
== communication among different Windows applications ==
 
The paragraph with "communication among different Windows applications" seems to be about stuff that Windows API is not. Suggest: remove it. [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 11:28, 29 January 2024 (UTC)
 
:I moved it to the section on related tech. [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 13:13, 18 October 2024 (UTC)
 
== wrappers ==
Line 157 ⟶ 175:
Wrapping requires design intent to replace all consumption need for the underlying tech. For example, MFC and ATL are not intended to replace all consumer need for Windows API.
 
Taking a step back: What is the point of this section? For example, it says MFC uses Windows API. ok. Everything built for Windows uses Windows API. What is interesting about MFC doing that? Goes without saying. Adds no value. What is interesting about MFC WRT WinAPI?
 
Suggest: Either remove this section or atdon't leastsay that thesethe other techs are wrappers -- just list them as other Microsoft Windows tech that the reader might want to peruse. [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 11:54, 29 January 2024 (UTC)
 
:I updated that section (some time ago). No comments on the change or to my comment here. Hope it's OK. [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 13:12, 18 October 2024 (UTC)
 
== History ==
 
The history section starts with ''The Windows API has always exposed a large part of the underlying structure of the Windows systems to programmers. This had the advantage of giving them much flexibility and power over their applications, but also creates great responsibility in how applications handle various low-level, sometimes tedious, operations that are associated with a graphical user interface.''
 
I don't know what do with that, but it's got issues.
* WinAPI exposes functionality; not structure
* WinAPI does not '''force''' developers to handle low-level stuff; it '''allows''' them to do low-level stuff
* How is GUI related to this?
[[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 13:25, 18 October 2024 (UTC)
:"WinAPI exposes functionality; not [the underlying structure of the Windows systems]" Given that a lot of the Win32 API was implemented in Windows 9x, the structure of which is a bit different from that of Windows NT, it definitely doesn't expose the "underlying structure" of Windows.
:"WinAPI does not '''force''' developers to handle low-level stuff; it '''allows''' them to do low-level stuff" Perhaps what they meant is that if you use ''only'' the Windows API, you have to do the low-level stuff yourself.
:"How is GUI related to this?" Perhaps they're saying that doing the low-level GUI stuff is more work than doing it elsewhere. But a citation for all of that would probably be called for here. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 00:15, 14 November 2024 (UTC)
 
== How are "Microsoft Windows library files" not shared libraries? ==
 
The article currently says:
 
{{blockquote|Programs can access API functionality via [[Shared library|shared-library]] technologies or via [[Microsoft Windows library files|system-file]] access.}}
 
[[Microsoft Windows library files]] says, right at the top of the page:
 
{{blockquote|The [[Microsoft Windows]] [[operating system]] and [[Microsoft Windows SDK]] support a collection of [[shared libraries]] that [[software]] can use to access the [[Windows API]]. This article provides an overview of the core libraries that are included with every modern Windows [[Installation (computer programs)|installation]], on top of which most Windows [[Application software|applications]] are built.}}
 
So the "system-files" (or just "system files - no need for the hyphen, at least in English) are, apparently, shared libraries.
 
In what way are they ''not'' shared libraries? If they are shared libraries, that statement is redundant. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 05:08, 2 February 2025 (UTC)
 
:I went ahead and cleaned this up, but next time feel free to clean it up directly. There's no need to open a discussion on such trivial matters. As an aside, thanks for all your contributions on all of these related topics. If you think it needs further refinement, be my guest. <span style="font-family:Verdana">&#123;&#123;u&#124;[[User:Jamarr81|Jamarr81]]&#125;&#125;</span><sup>[[User talk:Jamarr81|🗣]][[Special:Contributions/Jamarr81|⸎]]</sup> 15:37, 20 July 2025 (UTC)
Suggest: Either remove this section or at least that these other techs are wrappers -- just list them as other Microsoft Windows tech that the reader might want to peruse. [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 11:54, 29 January 2024 (UTC)