How to import a dll in an exe file without including the header file in visualC++ 2008? - visual-c++-2008

I am in the starting stage of programming.
I have created a .dll file. I want to link it in an .exe file. I have used the __declspec(dllimport) function, but it shows some error. How can I link the .dll to the .exe.
Please help me...
Thanks in Advance...

Related

How to call an executable with Dll from a directory without this dll

I have a working directory a and
I have a directory b with an exutable and a dll which is used by the executable.
I want to launch the executable in the working directory.
With powershell I do that:
$env::path += ";C:\path\to\the\directory b"
Now I try to launch the executable from directory a
executableName
the programm is launched but it fails to work because it can't find the dll.
How can I fix the problem?
I have contacted the company that has done this executable file.
The problem comes from the file.
It's not a path related problem.

MATLAB: Create a .dll from .c file

I have no MATLAB experience. I inherited a piece of Labview code that uses a Matlab complied .dll
Problem is the .dll had a memory leak that I was able to detect and remove.
Now I have no idea how to recompile the c File to produce the .dll file.
The c file has a comment that I believe relates to how the file must be compiled, see below:-
// MATLAB Compiler: 4.3 (R14SP3)
//Arguments: "-B" "macro_default" "link:lib" "reverse_wrapper.m"
The c File is in a folder that has a number of other files including ranging from .dll .m .exports and .m files
Searching the development PC, I see MATLAB Component Runtime version 7.3 is installed.
Please help me with a detailed step by step procedure to get compile my .c file into a .dll do I need to download a compiler and other tools?
https://drive.google.com/drive/folders/1NMV07uslBJey0wlkzthO2krmY5g1BWWQ?usp=sharing
in the above file there is folder named complier, I wonder if this is useful.

Doxygen failed to run html help compiler, hhc.exe error HHC5010 when running from folder that has a parent folder that starts with "."

I am using Conan package manager on Windows to create a package. The conan command to create the package copies files to a folder within %USERPROFILE%\.conan (or C:\Users\xxxxxxx\.conan). Then from this location it builds a Visual Studio project and ultimately calls doxygen.exe to create a .chm help file in a post-build command. The doxygen command fails with:
error : failed to run html help compiler on index.hhp
Further investigation reveals the hhc.exe command executed by doxygen is failing with:
C:\Users\xxxxxxx\.conan\data\Module\1.0.0\user\channel\build\524dc97e4a3dd1f774ea3897f9e4faf26c5457d2\Documentation>"C:/Program Files (x86)/HTML Help Workshop/hhc.exe" html\index.hhp
HHC5010: Error: Cannot open "C:\Users\xxxxxxx\data\Module\1.0.0\user\channel\build\524dc97e4a3dd1f774ea3897f9e4faf26c5457d2\Documentation\html\Module.chm". Compilation stopped.
Close inspection reveals that in the error message, the ".conan" folder is missing. Sure enough, I confirmed that hhc.exe fails when the index.hpp resides in a folder that has a parent folder that starts with a ".".
Attempts to resolve this:
changing the Doxyfile setting OUTPUT_DIRECTORY to "$(TMP)/DoxygenModule" resolves the error, but creates the .chm file in another location, which I do not prefer.
navigating to the 8DOT3 name of the ".conan" folder, which is "CONAN~1", to run the hhc.exe command, succeeds, but unfortunately I have no way of getting conan to use this 8DOT3 path for creating the package. E.g. C:\Users\xxxxxxx\CONAN~1\...
I can live with the using the %TMP% folder but would prefer generating the .chm in the current folder. Anyone have any ideas?
HTML Help Workshop v1.31 is installed on my machine at C:\Program Files (x86)\HTML Help Workshop, probably from a Visual Studio installation (not sure). I attempted using a version downloaded from Microsoft website (v1.30) as well, which made no difference.
Other info: Conan version 1.18.0, Doxygen version 1.8.14, Windows 10 Version 1809
Unfortunately not a solution, but this is a known limitation in the hhc.exe, see: https://social.msdn.microsoft.com/Forums/en-US/0681145c-223b-498c-b7bf-be83209cbf4e/issue-with-html-workshop-in-a-windows-container?forum=visualstudiogeneral
HTML Help 1.x command line compiler hhc.exe cannot compile CHM file to folder whose full path contains folder name starting with dot. If you have that problem, you probably specified output path with folder starting with dot, e.g. "d:\My files.NET\documentation". You can use dots in folder names but not at the beginning.
Edit 2019-11-15:
I've just pushed a proposed patch to github (pull request 7402, https://github.com/doxygen/doxygen/pull/7402).
This proposed patch changes inside doxygen from the current directory to the short named current directory, but just for the HTML Help compilation.
Edit 2019-11-16:
Code has been integrated in the master version on github.
This is not an answer either. Actually, you found the answer and workaround[s] yourself.
Use OUTPUT_DIRECTORY to specify a directory containing no folder names beginning with periods.
The error you described is a known issue of the MS HTML Help compiler. More general, the HTML Help compiler does not like some folder and file names. Try and stick with these characters _, a..z, A..Z, 0..9. Do not use these signs in particular ., -, # .
Please note that the proprietary CHM file format is about 20 years old (Windows 95, ...). HTML Help is in maintenance mode, which means no new features and bug fixes are expected for either the runtime or the compiler. All mainstream development on HH has stopped.
There is no way to avoid this error if a directory name above begins with a period. Not even if only the necessary files are written by Doxygen and compiling of the index.hhp is done by a third-party tool like FAR HTML using your path that contains .conan. This is because all applications are using the faulty HHA.dll.
The above applies of course to the entire workflow you have described. Maybe you can interrupt it.
Doxygen can be configured not to call the HTMLHelp compiler. Just uncheck the GENERATE_HTMLHELP option (DoxyWizard: Experts > Topics > HTML). You have all files generated by Doxygen in your preferred output directory - but of course without the CHM file. This can be imported later e.g. by HelpNDoc and compiled as a CHM file in another location.
If you can interrupt the workflow and can also make changes to Doxygen's settings, then a preference setting of OUTPUT_DIRECTORY to e.g. C:/CacheMenu/CONAN~1/DOXYGE~1 also works as expected (here used as test case).
No matter what you do, your workaround and copy and paste from another directory outside is a quick solution at this stage. Please note the EDIT in #albert's answer.

Doxygen error: failed to run html help compiler on index.hhp

So I am having this problem where I get an error when trying to get a .chm file for doxygen.
sh: C:\Program Files\HTML Help Workshop\hhc.exe: no se encontrĂ³ la orden (command not found)
error: failed to run html help compiler on index.hhp
In my doxyfile I have the following set this way.
GENERATE_HTMLHELP = YES
CHM_FILE = index.chm
HHC_LOCATION = "C:\Program Files (x86)\HTML Help Workshop\hhc.exe"
It's seriously driving me nuts and I don't find anything anywhere. Please help.
This still is an issue with doxygen. I would think that the problem is that hhc returns 1 on a success, which is probably treated as an error result by doxygen. If the kind folks at doxygen could fix this, it would keep our logs cleaner :)
go to the html folder and run this command hhc \index.hhp
make sure hhc is exported in the Environment variable or you can directly go to the location of hhc and run it from there.
It is in the C:\Program Files (x86)\HTML Help Workshop
Just found this thread (as I had the same issue), and another thing to check is whether you already have the destination .chm open in the help viewer - if so, close it as Windows can't write to an open file.
There is an other possibility for this error.
When a previous output *.chm file(old one) is in the output directory and is read-only and doxygen is trying to update the same file, this error will occur.
Check once the file is read-only or writable(It should be writable)
CHM_FILE = ../Design_Documentation.chm
OUTPUT_DIRECTORY = ..\..\Component\Detailed_Design
The .chm file could also be write protected because it's still open in the help viewer. Just close it and rerun doxygen.
As already mentioned by me in the comment (Doxygen error: failed to run html help compiler on index.hhp), the setting of the HHC_LOCATION should be like:
HHC_LOCATION = "\"C:\Program Files (x86)\HTML Help Workshop\hhc.exe\""
so the hhc compiler is called like: "C:\Program Files (x86)\HTML Help Workshop\hhc.exe".

Error: the program can't start because ImgProc.dll (third party library) is missing from your computer

I have three files ImgProc.h, ImgProc.lib, and ImgProc.dll created by Matlab. I imported them to my VSC++ 2012 MFC project, but when I ran it, the error occurred. I did add the ImgProc.lib into the linker-> input->additional dependencies, Copied 3 files into project directory.
I could not add references. Because when I tried, it was empty like:
that
I really appreciate if someone could help me.
ImgProc.dll must be available at runtime in your application's directory. You need to manually copy this file to your output directories for both Debug and Release builds. Alternatively you can create a post-build step that does the copying. Having ImgProc.dll in your project directory is not enough - your project directory is not part of the Dynamic-Link Library Search Order.