diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2015-11-12 16:08:12 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2015-11-12 16:08:12 +0100 |
commit | 0f7fdd8bf4d4f747f01c4d95ce64d96763286afc (patch) | |
tree | ae2bd0ab3e94d3c75a9ad1d7d7610179a56d083d | |
parent | ebc3438cc22c3a65425811a474fcad8d3c261c24 (diff) | |
parent | e8bc19f79c23d3bda57e2a9d1a68e653656b80a9 (diff) | |
download | Nim-0f7fdd8bf4d4f747f01c4d95ce64d96763286afc.tar.gz |
Merge pull request #3536 from jyelon/proc-addr
Add 'auto-decoration' to nimGetProcAddr
-rw-r--r-- | lib/system/dyncalls.nim | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/system/dyncalls.nim b/lib/system/dyncalls.nim index 908aa551b..4043c8714 100644 --- a/lib/system/dyncalls.nim +++ b/lib/system/dyncalls.nim @@ -105,7 +105,12 @@ elif defined(windows) or defined(dos): proc nimGetProcAddr(lib: LibHandle, name: cstring): ProcAddr = result = getProcAddress(cast[THINSTANCE](lib), name) - if result == nil: procAddrError(name) + if result != nil: return + for i in countup(0, 50): + var decorated = "_" & $name & "@" & $(i * 4) + result = getProcAddress(cast[THINSTANCE](lib), cstring(decorated)) + if result != nil: return + procAddrError(name) else: {.error: "no implementation for dyncalls".} |