Objetos C Runtime, límites dll

¿Cuál es la mejor manera de diseñar una API de C para las dll que resuelve el problema de pasar "objetos" que dependen del tiempo de ejecución de C (ARCHIVO *, el puntero que devuelve malloc, etc.). Por ejemplo, si dos archivos DLL están vinculados con una versión diferente del tiempo de ejecución, entiendo que no puede pasar un ARCHIVO * de un archivo DLL a otro de forma segura.

¿Es la única solución para usar la API dependiente de Windows (que se garantiza que funcionará en todos los archivos DLL)? La API de C ya existe y está madura, pero fue diseñada desde un POV de Unix, en su mayoría (y todavía tiene que trabajar en Unix, por supuesto).

Respuestas a la pregunta(4)

Su respuesta a la pregunta