<p>I am writing an application using labview and need to use external code. I have read that using CINs are old fashioned and 'wrong' to use. Is this correct? Should I use shared dlls instead?</p>

<p>What are the advantages/disadvantages of both methods?</p>

I don't have personal experience of writing external code to be called by LabVIEW, but from the
NI knowledge base
: "When given the choice, a DLL is the choice to make."
The advantages they list include:
Many processes can share a single copy of the DLL in memory
Many applications can share a single copy of the DLL on disk
Modifying the functions in a DLL does not require a recompile of the calling application
Only certain (obsolete?) development environments are supported for creating CINs.
Potential disadvantages of DLLs are:
The first two items on the list above ;-)
You need to remember to include the DLL as a support file when building an application from LabVIEW
CIN code can be platform independent, while DLL/shared libraries may need rewriting for each platform.
I'm pretty sure that every time I have seen this discussion in several years of following LabVIEW lists and forums the advice has been the same: CINs are obsolete, use DLLs - just be aware of the potential issues they can cause.