We have been experiencing the same problem, and finally found the issue. The error we found was associated with the data types being passed to the MDLIND subroutine. In particular, the second argument, IB in your code, must be a character string, per the API documentation. When we, by mistake, passed the routine an integer for the second argument, the linker (cload4) produces the error message you referred to in your email, an "unresolved external symbol". Every time I saw this, I assumed that the linker could not find the routine MDLIND, but in reality it cannot find that function coupled with those argument types. When we changed the second argument to a character string, it linked properly, and functions correctly.
As a note, one needs to be careful when dealing with equipment ID's in PSSE. Many times you can be lazy with the distinction between a numerical ID, say 1, versus the character ID, say '1'. PSSE will internally convert the numerical IDs to character string IDs, such as when read in from the UI, a read or dyre file, etc. However, when using an alphabetic ID, the use of quotes is preferred if not required. Obviously, when using the API functions, the data types must match the function definitions.
Hope this helps.