If you have both a library (.dll) file and a header (.h) you can use the Tools > Import > Shared Library (DLL) wizard to load the library. This will attempt to automagically create VIs for the functions in the library, but you should take care to check the results as/before you use them.
If you have just the DLL (or you have both, but don't need all of the functions!) you can use the Call Library Function Node. This can be found using the palettes on the Block Diagram, under Connectivity > Libraries & Executables > Call Library Function Node. You can then either double click, or right click and select Configure, to configure this function call.
You set the path or name of the library (you can use the name alone if LabVIEW can find the library on the search path - otherwise you'll need to use the full path) or you can tick a box to specify the path on the block diagram (at which point you wire a path to the node). You type the name of the function you want to call (as you read from the libnfc references you linked to) and then you add parameters to match the types given in the same reference.
For example, using the nfc_list_devices function that comes up at the top of the page when I click the link you gave, you would set 3 parameters, and make the return value a numeric type. Some useful links for types in LabVIEW compared with C/C++ can be found below:
Dereferencing Pointers from C/C++ DLLs in LabVIEW
Calling C/C++ DLLs Containing Simple and Complex Datatypes from LabVIEW
The types of the parameters should correspond with with the types in the documentation - it looks like a string (C String Pointer), an array of strings (see the first link above for more information on arrays) and a numeric value (the same type as the return value).
You'd then take the output of the function (the return value) as the value you wanted (the number of devices found) and probably wire the other 3 parameters as inputs, and ignore the outputs of those rows.