Tuesday, March 5, 2013

Compile Live555 using VS2010 Part 3

Part 3 is an updated version of compiling Live555 using VS2010 based on Live555 2013.02.27 build

1. Create an empty VS2010 C++ Solution as Live555
2. Within the Live555 solution, add sub projects to Live555 solution
3. The naming of the sub-project is preferred to follow live555 naming as shown

4. For sub-project BasicUsageEnvironment, groupsock, liveMedia and UsageEnvironment should be a static library project.

5. Now, copy each live555 folder into respective sub-project. From here, I will do an example for BasicUsage Environment project

6. Next, include all the file to BasicUsageEnvironment vcproj. Also, add additional include library.

7. Repeat step 5 and 6 for groupsock, liveMediaand UsageEnvironment.

8. For simplicity, compile each sub-project with project only build menu. This will help you to figure out any missing include file per sub-project basis.

9. If you manage to compile BasicUsageEnvironment, groupsock, liveMedia and UsageEnvironment sub-project successfully, it is time to work on Live555 main project. Include only the following files at Live555 as this example only interested in build Live555MediaServer

10. Mark mediaServer as main project and set the 4 sub-projects as project dependencies.

11. Set include directory for mediaServer

12. Set additional library (the library build of BasicUsageEnvironment, groupsock, liveMedia and UsageEnvironment will be located at Live555\debug folder) and additional dependencies of BasicUsageEnvironment.lib, groupsock.lib, liveMedia.lib,UsageEnvironment.lib and wsock32.lib

13. Put a debug point at live555MediaServer.cpp main(), then, press F5 to compile and run in debug mode. The project should compile successfully and pause at the debug point. If you continue the program, it will run as command prompt application of Live555MediaServer.

14. If you want to build other testProgs, you will have to create separate project for each of the test application because each testProgs are standalone application

Friday, March 1, 2013

Application Manifest Error - Two or more components referenced directly or indirectly by the application manifest have files by the same name.

If you encounter "Two or more components referenced directly or indirectly by the application manifest have files by the same name." when you creating a Application Manifest for Registration Free Installation of dll. This is a ERROR_SXS_DUPLICATE_DLL_NAME error.

Whenever you see this error, this means that your manifest could have a File tags that have duplicate name with your manifest. Below is an example of File tag that point to a Audio.dll

Fixing this issue could be extremely tedious depend on the complexity of your manifest. Some suggestions are

1. Scan through all manifest files via search

This could be the fastest way to find duplicate declaration of file tag with same name

2. Duplicate name appear at application.exe.manifest and your external manifest

Each application will auto generate a application.exe.manifest. For example, if you application has a video.exe, you will have a video.exe.manifest

This manifest is generated during build time and it could link external manifest via app.manifest in your VS IDE environment.

So, this scenarios will happen when your external manifest contain a file tag call and you accidentally set the dll in your IDE build action as Content. This setting tell the compiler to add a dll file tag in application.exe.manifest

To fix this, assuming that your external manifest is valid, you have to change the following at your IDE environment

a. Go to VS Solution explorer, locate your dll. For this example, I am using Audio.dll

b. Change Build Action - Content to None

c. Rebuild all application and your application.exe.manifest should be updated

LDAP - Deleting an LDAP entry

To delete an ldif entry, one way is to put an changetype attribute and a value 'delete' in the ldif file For example dn: cn=so...