2015-09-29 13 views
5

nim kodundan dll oluşturmak istiyorum. Ancak, "NimMainInner" den başka bazı ihracatları kaydedemedim. i onun çalışmıyor bu basit bir örnek etsek i nim c --app:lib libh4x.nim ve nim c -d:release --app:lib --no_main libh4x.nimNim/nimrod pencereleri doğru şekilde nasıl oluşturulur dll

ile derledik

proc Hellow(): cint {.exportc.} = 
    echo("hello") 
    return 1 

i dllexp.exe kullanmak dll incelemek için

Nim Compiler Version 0.11.2 (2015-05-04) [Windows: i386] kullanın. Ayrıca dll'yi python ctypes ile yüklemeyi denedim, ancak ihracatımın hiçbiri gösterilemiyor veya satılamaz. Bununla birlikte, proc adını bir dilditörle birlikte dll olarak görebilirim.

Burada neleri özledim? dynlib pragma eksikti.

cevap

4

Bu yüzden tanımı şu şekilde değiştirdim:

proc Hellow(): cint {.exportc,dynlib.} = 
    echo("hello") 
    result = 1 

şimdi çalışıyor.

Not: piton ctypes ile ve işlev parametreleri ile bu kullanırsanız ctypes.windll.LoadLibrary yerine ctypes.cdll.LoadLibrary kullandığınızdan emin olun: Python ctypes argument errors

ve bunun gibi işlev bildirmek için:

proc myinit(procid : int) {.cdecl,exportc,dynlib.} = 
    discard