2010-01-06 29 views

Respuesta

3

Si la aplicación biblioteca de toma/rendimientos/usa CStrings que necesitará la vinculación con las bibliotecas MFC, o tendrá las bibliotecas MFC ya enlazados estáticamente.

Si está utilizando Visual Studio puede simplemente marcar "usar MFc en lib estático/compartido" según corresponda, no afecta la GUI de su aplicación mientras mantenga su punto de entrada del programa actual.

1

Si solo es para CString (y tal vez algunas otras funciones de utilidad) es mejor que busque reemplazos. Hay bastantes que están flotando en internet.

Por ejemplo, esta aplicación CString

0

Sí, puede usar MFC seleccionándolo en sus opciones de compilación y enlace. Si su única razón es debido a la biblioteca de terceros, probablemente querrá abstenerse de utilizar funciones de MFC en su propio código. De esta forma, si alguna vez reemplaza la biblioteca de terceros, también puede desactivar MFC.

1

Sería mucho más fácil si puede encontrar un reemplazo de la biblioteca de MFC de terceros.

La biblioteca de terceros, estática o vinculada dinámicamente, requerirá una versión de MFC que es exactamente la misma versión que la utilizada para compilar el archivo lib de terceros. Las clases MFC no son compatibles con binarios entre versiones y ni siquiera son compatibles con binarios entre configuraciones (MFC & CRT estático/dinámicamente enlazado, CRT de subprocesos múltiples o múltiples, depuración, versión, X86, X64, MBCS, UNICODE, etc.) de la misma versión .

Si utiliza CString :: LoadString o cualquier otra cosa que acceda al estado del módulo MFC requerirá un CWinApp global. Una forma fácil de obtenerlo es crear una DLL regular. Agregar uno a su proyecto de QT requeriría mover el código de su función de entrada saliente a InitInstance y ExitInstance.

0

Si el programa de Windows existente utiliza un bucle de mensaje (en lugar de los controladores de eventos separados utilizados por MFC) puede crear una ventana de subclase en cualquier nivel que necesite para procesar ese bucle de mensaje y anular la función de WindowProc.

Por ejemplo, tomé un programa Win32 existente e incrustó su ventana principal en una ventana de imagen CStatic sustituyendo el WindowProc del CStatic subclasificado. La funcionalidad del programa anterior estaba contenida en el CStatic, pero podría agregar otros controles y paradigmas MFC en el borde circundante.

0

Para agregar compatibilidad con MFC a Integra se necesitan los siguientes cambios:

  1. Cambio punto de entrada de aplicación:
    • Normalmente qt punto de entrada de la aplicación es el principal, por aplicación MFC el punto de entrada esperado es WinMain/wWinMain.
  2. Agregue las dependencias necesarias de MFC (mfc140d.dll/mfc140.dll, etc.).
    • Agregue la carpeta System32 a la ruta del entorno para encontrar las dependencias necesarias.
    • paquete los archivos DLL necesarios al crear el instalador
Cuestiones relacionadas