Hay dos posibilidades:
- Estás usando un recurso de dentro de la DLL fuera de ella, pudiendo haber una incompatibilidad dentro del marco de memoria (quizá el bloque está marcado como local y por eso no deja usarlo fuera de la DLL, si es que es posible hacer eso en Windows).
- O quizá estás liberando un recurso (¿la propia DLL?) antes de tiempo, o intentando acceder a dicho recurso tras su destrucción.
En cualquier caso habrá que ver qué es exactamente lo que provoca la violación de acceso.