dll

Best way for a dll to get configuration information?

We have developed a number of custom dll's which are called by third-party Windows applications. These dlls are loaded / unloaded as required. Most of the dlls call web services and these need to have urls, timeouts, etc configured. Because the dll is not permanently in memory, it has to read the configuration every time it is invoked....

GetExitCodeProcess() returns 128

I have a DLL that's loaded into a 3rd party parent process as an extension. From this DLL I instantiate external processes (my own) by using CreateProcess API. This works great in 99.999% of the cases but sometimes this suddenly fails and stops working permanently (maybe a restart of the parent process would solve this but this is undesi...

When to use dynamic vs. static libraries

When creating a class library in C++, you can choose between dynamic (.dll) and static (.lib) libraries. What is the difference between them and when is it appropriate to use which? ...

Merge several native DLLs into one DLL

I've got a lot of small DLLs which I would like to make into one big(er) DLL (as suggested here). I can do so by merging my projects but I would like a less intrusive way. Can several DLLs be merged into one unit? A quick search found this thread that claims this is not possible. Does anyone know otherwise? Note that I'm talking abo...

tStringList passing in C# to Delphi DLL

I have a Delphi DLL with a function defined as: function SubmitJobStringList(joblist: tStringList; var jobno: Integer): Integer; I am calling this from C#. How do I declare the first parameter as a tStringList does not exist in C#. I currently have the declaration as: [DllImport("opt7bja.dll", CharSet = CharSet.Ansi, CallingConvention...

Windows path searching in LoadLibrary with manifest

If you call LoadLibrary without a path (e.g., LoadLibrary("whatever.dll"), Windows will generally follow its standard search algorithm, the same one it uses to find EXEs. My question is this: suppose that an application manifest specifies specifies a particular version of a system DLL, say, comctl32.dll 6.0. In that case, will LoadLibra...

App.config for dll

We have an "engine" that loads dlls dynamically (whatever is located in a certain directory) and calls Workflow classes from them by way of reflection. We now have some new Workflows that require access to a database, so I figured that I would put a config file in the dll directory. But for some reason my Workflows just don't see the c...

Windows API commctrl.h using application doesn't work on machines without the Platform SDK

I have written something that uses the following includes: #include <math.h> #include <time.h> #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <commctrl.h> This code works fine on 2 machines with the Platform SDK installed, but doesn't run (neither debug nor release versions) on clean installs of windows (VMs of c...

DLL versions and Visual Studio attach to process

I'm trying to use VS's attach to process tool to debug add-ins I'm developing for Sql Server Reporting Services. I am able to correctly debug it with attach to process when I copy dll's and pdb's in my project debug/bin dir to the ReportServer/bin dir. But, if I use my msbuild script and copy those dlls and pdbs to the ReportServer/bin...

Visual Studio 2005 locks up when attaching to process

I have a simple C++ DLL that implements a few custom actions for a WiX installer. Debugging the custom actions is usually simple: put up a temporary dialog box at the beginning of the action, and attach to the process when the dialog box appears. But today, whenever I attach to the process, I get the "Microsoft Visual Studio is Busy" b...

Putting configuration information in a DLL

In my project I have functionality that is being used as a web application and as a console application (to be started from the task scheduler). To do that I put the common code in a DLL that is being used by both the web application and the console application. This works fine. However, the console and web applications now have an App....

Does static array constness affect shared library layout?

Consider these two C++ header cases: Case 1: class Test { public: static int TEST_DATA[]; }; int Test::TEST_DATA[] = { 1, 2, 3, 4 }; Case 2: class Test { public: static int const TEST_DATA[]; }; int const Test::TEST_DATA[] = { 1, 2, 3, 4 }; Is const in the latter case only for self-imposed compile-time checks or does i...

Understanding dlls and how they work in Visual Studio

Does anyone have a good resource on dlls and how they are used / generated in Visual Studio? A few questions I'm rather hazy on specifically are: How refresh files work How dll version numbers are generated The difference between adding a reference by project vs browsing for the specific dll Any other tips are welcome as well. ...

VC9 and VC8 lib compatibility

(The original question was asked there : http://www.ogre3d.org/phpBB2/viewtopic.php?t=44832 ) Someone asked : "While I would like to build everything in vs2008 (VC9), the PhysX SDK is built with vs2005 (VC8). Would this cause any problems, using all vc9 compiled libs and used in combination with this vc8 lib?" I answered that the day ...

Attaching a DLL to debug?

I have a DLL as an add-in in a third party application. When I launch the DLL from MS Visual Studio 2005 in debug mode the third party application will crash. Instead of launching my DLL from Visual Studio in debug mode, I try to launch the third party application first which will load my DLL. Then I attach my DLL to the third party app...

How to fix DWMAPI.DLL delay-load dependency under WinXP?

I have built a .dll under WinXP that claims it can't find DWMAPI.DLL when it's loaded. The problem is that this DLL is a Vista DLL, and this a known issue for XP users that have IE7 installed. The recommendation is to uninstall IE7 or repair the .NET Framework via Add/Remove programs. I did the repair, and nothing changed. I'm not about ...

MinGW library converted to Windows library gives odd link in VC++6

I used the MinGW .a to Windows .lib transformation process as detailed in a thread on the gmp-discuss list, as below (acting against a library created with --disable-shared --enable-static.) cp libgmp.a gmp.a ranlib gmp.a mv gmp.a gmp.lib I now have a .lib file against which VC++6 seems to have no difficulty linking. What concerns me...

Visual C++ Redistributables without using VCRedist_x86.exe

I'm developing in an environment that is severely constrained, but the developers also have tight control over. VCRedist_x86.exe - A 4Mb redistributable - is no fun (four hours to transfer). I'd really prefer to just redistribute MFC90.dll, msvcm90.dll, msvcp90.dll and msvcr90.dll - that's more like 2Mb. However, Redistributing Visu...

How to deterimine whether .Net DLL is used in a GUI app or web service?

How do I determine in a .Net DLL whether it's running in a Windows GUI application or web service? I've got a low level class which is being shared between two applications and need to disable message boxes when it's used in a web service. The Windows application has over 200 solutions and I'm not in a position to re-factor the existin...

py2exe including MSVC DLLs in the .exe

Hello, When using py2exe to distribute Python applications with wxPython, some MSVC DLLs are usually needed to make the .exe work on freshly installed machines. In particular, the two most common DLLs are msvcp71.dll and msvcr71.dll The former can be included in the .exe using this tip. However, the latter is just placed in the dist di...