Include DEF file in compile - c++

I have simple Visual C++ dll project. Project contains .def file that is not included in build. I can write anything in in this file and compiler does not complains. How to make project include def file in compile?
DEF content:
LIBRARY
EXPORTS
setSettingDEREncrypt #1

Related

How to include header files to c++ dll file

I want to include iostream inside a c++ dll file but am getting "fatal error: iostream: No such file or directory" error.
How can I include header files in a dll file?
There's no such a thing like "include header files in a dll file".
What you can do is:
include header files in a source code file (i.e. *.cpp),
then compile it to create a shared library (DLL file on Windows platform).

Error in including header file in .h file but not in .cpp

With Visual Studio 2013 I'm writing a Dynamic Library and I need to use some third-party libraries. Each library comes in the form of header .h, a .dll and .lib files. I added the library's directory to my project, I changed the "Configuration Properties -> C/C++ -> Additional Include Directories" to include the header file and I added the .lib file to the Additional Dependencies of the Linker.
If I try to include the header .h in my .cpp file using
#include "library.h"
everything works fine and the compiler it gives no error. But if I put this line in my header .h file and try to compile I get this error:
error C1083: Cannot open include file: 'library.h': No such file or directory
Any ideas? Thanks in advance.

Visual Studio: Include .h or .cpp in two-project solution

I have a Visual Studio solution containing 2 project: main project and test (via googletest). In main project I have myclass.cpp and myclass.h files. When I'm trying to compile test project, there are bunch of LNK2019 errors when I include "myclass.h" in my test.cpp file, but everything works fine if I include "myclass.cpp" instead. Is that normal? As far as I know, including of .cpp files is not recommended and generally can be avoided. Any suggestions?
It's normal. If you have 2 projects, 2 binaries will be generated.
Don't include the cpp file.
Instead, link the binaries together.
main project - generates .lib file and either .dll or .exe.
test project - includes header from main. You need to add the .lib generated by main in the additional dependencies of the test project. Somewhere in the Project Settings - Linker Options - Additional Dependencies.
You can generate both .exe and .lib file from a single project. To do this you set:
exe in Linker -> General -> Output File
lib in Linker -> Advanced -> Import Library
You may also need to mark exported functions with __declspec( dllexport ) in the .exe project (see docs), otherwise compiler won't generate a .lib file.
Steps to Use Classes form another project (Add header and solver linker errors)
1) To be able to add the header from another project, first go to "Properties > c++ > General > Additional Include Directories" and add the directory that contains the header. Now you will be able to add the header of the class from the other project, but running the project will still cause Linker Errors.
2) Add __declspec(dllexport) before the class you are using for the other project. This can be added in the header file of that class. This should be added right before the function or variable or class name. Now you will get a lib file. (if placed in wrong place, you can get this warning: https://msdn.microsoft.com/en-us/library/eehkcz60.aspx)
3) "Properties > Linker > Additional Library Directories". Specify the location of the lib file that is generated.
4) "Properties > Linker > Input > Additional Dependencies”: Add the name of the lib file.

How to include .obj files into the project

I have the following question:
I was given the task - to build an application. There was a ready file counter.h and some other file - counter.obj. It turned out that in the counter.h there were only declarations of the functions - how can I include .obj file into the .cpp file so that it compiles? I am using Microsoft Visual Studio 2010 - and in which folder should the file itself go?
Add the obj-file to the Solution just as you would do with cpp-files (i usually do this by drag-and-drop, that is, drag the file from the Windows Explorer and drop it on a project in the Solution Exporer window).
You can put the obj-file together with cpp-files; it doesn't really matter.
You do cannot include object file in to a cpp file.
The compiler compiles the cpp file and generates the obj files, for each cpp file, these files are further linked together to create an libray or an executable.
Usually, you would link libraries(.lib or .dll) to an Application, Check if those are with you.
If not,
You can try linking the object file to your application by:
Go to project properties then from "Property Page" select the node "C/C++" their you will get "Additional Include Directories" add the name of your object file.Keep your obj file in the directory where your source code is or you can add the directory from:
Tools->Options->Projects and Solutions->VC++Directories.
I have never tried the second method except for academic projects,which was years ago, So not sure about it, Please check information on MSDN.

Convert lib + header file to DLL

I have a library (lib file + .h header file). I like to turn it into a DLL so I can easiliy use it in VB6. Is there a convenient way to do this?
Simply include the header file an a .def file in a new dll project and link it with the static lib.
The details of how to export symbols with a def file are here http://msdn.microsoft.com/en-us/library/d91k01sh(VS.80).aspx