Comments (1)
I'm fairly certain, that with dependency walker (or even walking through a dll in general) you can only get the function names, and not the named parameters and parameter types.
Quote from dependency walker page:
For most functions, this information is simply not present in the module. The Windows' module file format only provides a single text string to identify each function. There is no structured way to list the number of parameters, the parameter types, or the return type. However, some languages do something called function "decoration" or "mangling", which is the process of encoding information into the text string. For example, a function like int Foo(int, int) encoded with simple decoration might be exported as _Foo@8. The 8 refers to the number of bytes used by the parameters. If C++ decoration is used, the function would be exported as:
?Foo@@YGHHH@Z
, which can be directly decoded back to the function's original prototype:
int Foo(int, int)
. Dependency Walker supports C++ undecoration by using the Undecorate C++ Functions Command.
The Win32 APIs aren't decorated. If one wanted to automate the definition of FFI calls the best way would be data driven via MSDN (though mind even these are sparsely documented) or an open source documentation site like pinvoke.
It could also in theory be built off of source code from windows compatible systems or off of wine entries (which could either be extracted via HTTP request or directly if possible...).
Edit: to be honest, wine source code is probably the best place to start:
User32 Wine Spec. User32 Wine Src
from node-win32-api.
Related Issues (20)
- Can support win32printer? HOT 3
- Bug in "Async Find window and set window title" HOT 3
- Need help. How to use a Custom Struct with EnumWindows? HOT 12
- compatible with regular JavaScript? HOT 7
- Cannot find module 'win32-def/struct.def' HOT 10
- Is hMonitor supported? HOT 3
- FindWindow handles and SetParent? HOT 1
- Cannot find module 'node: assert' Require stack HOT 10
- Can you add GetJob HOT 1
- Can you add User32."EnumChildWindows"?
- How to make an application invisible in the background? HOT 2
- Can you add SendInput?
- Could not find a declaration file for module 'win32-api/promise' HOT 10
- Unused '@ts-expect-error' directive. HOT 1
- [QUESTION] 请问有什么方式可以替换包内ref-napi和ffi-napi依赖吗 HOT 1
- way return '' => return; HOT 6
- 这个API支不支持WebView2?和SystemTrayMenu? HOT 3
- 缺少SendMessageTimeoutW和SendMessageTimeoutA HOT 1
- SendMessageW stalls entire node app
- import_winspool.apiDef.WritePrinter is not a function
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-win32-api.