¿Cómo hacer referencia a una DLL (Dynamic LIB) en un proyecto Visual Studio 2012 C ++? -- ++ campo con visual-studio-2012 camp Relacionados El problema

How to reference a (Dynamic Lib) DLL in a Visual Studio 2012 C++ project?


4
vote

problema

Español

Hice una biblioteca dinámica con encabezados compilados y compilé una DLL (utilizando Visual Studio 2012).

También tengo un proyecto C ++ hecho también con Visual Studio 2012, que quiero hacer referencia a la DLL anterior generada.

¿Cómo hacer referencia a esa DLL (Dynamic LIB) DLL en mi proyecto Visual Studio 2012 C ++? ¿También necesito señalar el archivo de encabezado (.H) Si quiero usar las funciones de la biblioteca?

Original en ingles

I made a dynamic library with compiled headers and compiled a DLL (using Visual Studio 2012).

I also have a C++ project made also with Visual Studio 2012 which i want to reference the previous DLL generated.

How to reference that (Dynamic Lib) DLL in my Visual Studio 2012 C++ project ? Does i also need to point the header file (.h) if i want to use the functions of the library ?

     

Lista de respuestas

4
 
vote
vote
La mejor respuesta
 

Me parece más fácil hacer referencia al proyecto DLL usando el elemento Framework and References660 en el cuadro de diálogo Propiedades del proyecto:

ingrese la descripción de la imagen aquí

Parece que está agregando algo de una cosa extraña .NET a su código nativo de C ++, pero también es la forma más fácil de que un proyecto de código nativo haga referencia a otro.

Si desea llamar a funciones en esa DLL, entonces sí, es probable que desee incluir ese archivo de encabezado de DLL.

 

I find it easiest to reference the DLL project using the Framework and References item in the project's properties dialog:

enter image description here

It looks like you're adding some weird .Net thing into your C++ native code, but it's also the easiest way for a native-code project to reference another.

If you want to call functions in that DLL, then yes, you probably want to include that DLL's header file.

 
 
   
   
1
 
vote

Hay un par de maneras de hacer esto, pero todos tienen en Common que necesita para incluir el encabezado en su proyecto para que las funciones sean conocidas, ya que C ++ no tiene reflexión.

  1. Puede saltarla estábicamente estáticamente y cargar la DLL utilizando LoadLibrary y obtener las funciones utilizando GetProcAddress, esto tiene la ventaja de que puede hacer que la DLL opcional. Si no está allí, podría evitar llamarlo o dar un mensaje de error fácil de usar.

  2. Puede enlazar estáticamente a la DLL, esto significa agregar el archivo .lib de la DLL a su proyecto, hay algunas formas de hacer esto, la vieja forma de la escuela es agregarla en las propiedades de su solución / enlazador / entrada / dependencias adicionales y luego asegúrese de que la DLL esté en la ruta de búsqueda EXE. Obtendrá un mensaje de error si no se encuentra.

 

There are a couple of ways to do this but all have in commmon that you need to include the header in your project so that the functions are known since C++ doesn't have reflection.

  1. you can skip linking statically and load the dll using LoadLibrary and getting the functions using GetProcAddress, this has the advantage that you can make the DLL optional. If it is not there you could just avoid calling it or give some user friendly error message.

  2. you can statically link to the dll, this means adding the .lib file of the dll to your project, there are a few ways to do this, the old school way is to add it in properties of your solution/linker/input/additional dependencies and then make sure the dll is in the exe search path. You will get an error message if it is not found.

 
 
   
   
0
 
vote

Puede ver la documentación aquí: http: //msdn.microsoft.com/en-us/library/ms235636(v=vs.80).aspx (Creación y uso de una biblioteca de enlaces dinámicos)

 

You can see the documentation here: http://msdn.microsoft.com/en-us/library/ms235636(v=vs.80).aspx (Creating and Using a Dynamic Link Library)

 
 
-1
 
vote

Puedo darle una respuesta sobre cómo agregar DLL en VS 2010

pasos: Haga clic derecho en Solution Explorer, Propiedades, Propiedades de configuración, General, Directorio de salida. Aquí presione en la flecha derecha y seleccione las cejas. cejas al directorio dll.

eso es todo.

 

I can give you an answer about how to add dll in VS 2010

steps: right click on solution explorer, properties , configuration properties, General, output directory. here press on right arrow and select brows. brows to DLL directory.

thats all.

 
 
 
 

Relacionados problema

4  Se suministró información de unión parcial para un MSTEST  ( Partial binding information was supplied for an assembly mstest ) 
Estoy usando el nuevo marco SimpleMembership660 en .NET. Las pruebas de la unidad para crear usuarios (usando la API - ver más abajo) Trabajar fino localm...

1  Cómo analizar los datos JSON a datos normales en C #  ( How to parse json data to normal data in c sharp ) 
Soy principiante en C #, he emitido desde el sitio web como {"Resultado": "Inválido"} con mi programa C #, parece ser JSON , quiero mostrar estos datos como ...

0  Creity Framework 5 Savechanges no guarda datos a todas las tablas relacionadas  ( Entity framework 5 savechanges does not save data to all related tables ) 
Estoy actualizando una entidad Framerwork 4.1 / MVC 3 a Entity Framework 5.0 / MVC 4 usando Visual Studio 2012. La base de datos es SQL Server 2005. A continu...

0  NET T4 usando TextTemplatingFilePreprocessor  ( Net t4 using texttemplatingfilepreprocessor ) 
Estoy haciendo lo siguiente: definiendo un flujo de trabajo en XML. transformando el flujo de trabajo a objetos usando linq. en Tiempo de ejecución, cr...

0  Envdte vs 2012 proyectitems.addfolder  ( Envdte vs 2012 projectitems addfolder ) 
Estoy recreando un proyecto ADDIN que tuve en VS 2010 y una función básica, como agregar una carpeta al proyecto, no funciona. Dándome: The kind 'vsProject...

-1  Vstudio2012 Cómo hacer un formulario de "Borderstyle = Ninguno" móvil  ( Vstudio2012 how to make a borderstyle none form moveable ) 
APRESENTANDO QUE VESSTUDIO 2012, estoy tratando de hacer una forma movible con "Borderstyle = None" pero no puedo. Toda la información que encontré en Googl...

1  Plantilla de Scrum o actualización para TFS2010 que admite VS2012, no se puede asociar UI codificado con la caja de prueba  ( Scrum template or update for tfs2010 supporting vs2012 unable to associate code ) 
Estoy usando TFS 2010 con plantilla Scrum. Estoy creando un casos de prueba de UI codificados utilizando Visual Studio 2012 Ultimate y se registraron en TFS. ...

103  ¿Se puede instalar Visual Studio 2012 lado a lado W / Visual Studio 2010?  ( Can visual studio 2012 be installed side by side w visual studio 2010 ) 
Will Visual Studio 2012 Interferir / Break .NET 4 y / o Visual Studio 2010 ¿Si se instala lado a lado en la misma instancia de Windows? ...

0  ¿Cómo crear y mostrar una infusión al hacer clic en una etiqueta?  ( How to create and show a infotip when clickng a label ) 
Estoy usando vstudio2012, mi problema parece simple pero es demasiado difícil para mí, edit : es una "aplicación de formularios de Windows" Tengo una eti...

0  ¿Alguien puede usar System.Windows.input.icommand en C ++ / CLI con VS2012?  ( Can anyone use system windows input icommand in c cli with vs2012 ) 
Estoy dirigido a .NET 4.0 pero usando VS2012 para apoyar mis proyectos existentes. Utilizamos comandos en todo el lugar para enlazar en wpf. Parece que el e...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos