Problema de dependencias

Iniciado por Khronos14, 4 Junio 2011, 11:49 AM

0 Miembros y 1 Visitante están viendo este tema.

Khronos14

Hola, estoy haciendo un proyecto en C# y C++ con el Visual Studio. La interfaz está hecha en C# y el "corazón" del programa está en una librería hecha en C++.

Código (cpp) [Seleccionar]

#include <Windows.h>
//#include "core.h"
#include <curl/curl.h>

extern "C" __declspec(dllexport) int StartXModule();

BOOL APIENTRY DllMain( HANDLE hModule,
                        DWORD  ul_reason_for_call,
                        LPVOID lpReserved )
{
    return TRUE;
}


int StartXModule()
{
curl_global_init(CURL_GLOBAL_DEFAULT);
return 0;
}


La llamada de la función desde C# se hace aquí:

Código (csharp) [Seleccionar]

[DllImport("x-module.dll")]
        private static extern int StartXModule();

        private void FMain_Load(object sender, EventArgs e)
        {
            PMain.BackColor = System.Drawing.ColorTranslator.FromWin32(0x00373737);
            //for (int i = 0; i < 30; i++)
            //    listBoxX1.Items.Add("qdwqdqw");
            StartXModule();
        }


Depurando desde el Visual C# la aplicación se ejecuta correctamente, pero generando la aplicación y ejecutando directamente me da este error:

No se puede cargar el archivo DLL "x-module.dll". No se puede encontrar el módulo especificado. (Excepción de HRESULT: 0x8007007E).

Mi aplicación la forman 2 librerías (libcurl.dll y x-module.dll) y la aplicación hecha en C#. El problema creo que está en que no tiene acceso a la función curl_globla_init() llamando a StartXModule() desde C#, porque si comento esa línea, la función se carga correctamente.

Espero que me podáis ayudar.. Saludos.