API Documentation

ListAPIDLLs

Lists all available NxCoreAPI.dll files on this computer


    #define cszNxCoreListAPIDLLs "sNxCoreListAPIDLLs"
    typedef int (__stdcall *NxCoreListAPIDLLs) (unsigned int controlFlags, NxCoreCallbackAPIList stdcallback, void* pUserParam);

    int ListAPIDLLs(
        unsigned int                    controlFlags,
        NxCoreCallbackAPIList           stdcallbacklist,
        void*                           pYourParam
        );

Example

Here's an example of finding and printing all NxCoreAPI.dll files on this machine

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include "NxCoreAPI.h"
#include "NxCoreAPI_Wrapper_C++.h"

NxCoreClass NxCore;

struct MyDLLList
{
    static const int numDLLs = 512;
    NxCoreAPIDLLFile dllFiles[numDLLs];
    unsigned int     count;
};

int __stdcall listDLL(void* pUserParam, const NxCoreAPIDLLFile* pNxDF)
{
    MyDLLList* dllList = (MyDLLList*) pUserParam;

    if (dllList->count < dllList->numDLLs)
        memcpy(&dllList->dllFiles[dllList->count++], pNxDF, sizeof(*pNxDF));

    return NxCALLBACKRETURN_CONTINUE;
}

void dumpDLLs()
{
    MyDLLList dllList;
    dllList.count = 0;

    NxCore.ListAPIDLLs(0, listDLL, &dllList);

    for (unsigned int i = 0; i < dllList.count; i++)
        printf("%s\n", dllList.dllFiles[i].PathnameStrZ);
}

int main(int argc, char** argv)
{
    if (!NxCore.LoadNxCore("NxCoreAPI64.dll") &&
        !NxCore.LoadNxCore("NxCoreAPI.dll"))
    {
        printf("loading library failed\n");
        return -1;
    }
    dumpDLLs();
    return 0;
}
import net.nanex.NxCoreClass;
class ListAPIDLLsSample extends NxCoreClass{
    
    MyDLLList dllList= new MyDLLList();
    
    class MyDLLList {
        int numDLLs = 512;
        NxCoreAPIDLLFile dllFiles[] = new NxCoreAPIDLLFile[numDLLs];
        int count = 0;
    };
    
    //callback function must be named OnUserListAPI for Java
    @Override
    public int OnUserListAPI(NxCoreAPIDLLFile nxDF)
    {
        if (dllList.count < dllList.numDLLs)
            dllList.dllFiles[dllList.count++] = nxDF;
    
        return defines.NxCALLBACKRETURN_CONTINUE;
    }
    
    void dumpDLLs()
    {
        //Only argument is ControlFlags for Java
        ListAPIDLLs(0);
    
        for (int i = 0; i < dllList.count; i++)
            System.out.println(dllList.dllFiles[i].PathnameStrZ);
    }
    
    public static void main(String args[]) {
        ListAPIDLLsSample nxCore = new ListAPIDLLsSample();

        if (nxCore.LoadNxCore("NxCoreAPI64.dll") != 0){
            nxCore.dumpDLLs();
        }
        else
            System.out.println("loading library failed");
    }
}
import NxCore

dllFiles = []

def OnUserListAPI(nxDF):
    global dllFiles
    dllFiles.append(nxDF)
    
    return NxCore.NxCALLBACKRETURN_CONTINUE

def dumpDLLs():
    NxCore.ListAPIDLLs(0,OnUserListAPI);
    
    for i in range(len(dllFiles)):
        print(dllFiles[i].PathnameStrZ);

if NxCore.LoadNxCore("NxCoreAPI64.dll"):
    dumpDLLs()
else:
    print("loading library failed")