Scusa, questo non è Esattamente Una risposta, ma il problema è stato risolto.
Per cominciare, ho appena notato una domanda simile qui: Errore C ++ LoadLibrary () 3765269347. Penso che questo fornisca maggiori dettagli e vale la pena dare un'occhiata se sei in una posizione simile a quello che ero.
Grazie a @whozcraig, @danieldaranas e tutti gli altri che hanno fatto commenti utili. Per altre persone che leggono questo, c'è un buon articolo su Hresult che si espande sui loro punti su Wikipedia: http://en.wikipedia.org/wiki/hresult.
Nel mio caso, il problema è andato via misteriosamente quanto è sorto. Ho creato una classe C ++ per chiamare la DLL su base regolare. Il mio sforzo originale ha caricato la DLL immediatamente prima della prima chiamata e l'ha memorizzata nella memoria. Questo è lo stesso in linea di principio a come ha funzionato per oltre un anno. Ciò ha comportato il misterioso errore sopra.
L'ho refactorto per caricare la DLL durante la costruzione, ma per estrarre la funzione da essa solo in fase di esecuzione. Questo apparentemente funziona, ed è probabilmente un modo migliore per farlo (caricando la DLL durante la costruzione, liberandola durante la distruzione). Dato che c'è molto poco da fare tra la costruzione e la prima chiamata alla DLL, non riesco a capire perché un metodo dovrebbe produrre un errore del sistema operativo e l'altro no.