¿Es válido desarrollar una DLL en C++ que devuelva impulsores compartidos y los use como parámetros?¿Está bien utilizar boost :: shared ptr en la interfaz DLL?
Entonces, ¿está bien exportar funciones como esta?
1.) boost::shared_ptr<Connection> startConnection();
2.) void sendToConnection(boost::shared_ptr<Connection> conn, byte* data, int len);
En especial: ¿El trabajo de referencia recuento a través de fronteras o DLL sería el requisito de que sea EXE y DLL utilizar el mismo tiempo de ejecución?
La intención es superar los problemas con la propiedad del objeto. Entonces el objeto se elimina cuando tanto dll como exe ya no hacen referencia a él.
CUIDADO: si enlaza la CRT estática, tendrá problemas. Cada módulo que está vinculado estáticamente al CRT obtiene su propio montón. Si todos los módulos se vinculan al DLL CRT, todos compartirán un montón. – Zac