A DLL can define two kinds of functions: exported and internal. The exported functions are intended to be called by other modules, as well as from within the DLL where they are defined. Internal functions are typically intended to be called only from within the DLL where they are defined. Although a DLL can export data, its data is generally used only by its functions. However, there is nothing to prevent another module from reading or writing that address.
Windows上的动态链接与Linux上有些不同。Linux所有的symbol都可以通过dlsym找到,而Windows上只能找到Export的function 和 data。