Recently, I had to work with the C-API. Aside from having some problems to compile, link and successfully run the extension manager from the sample code that comes with the Notes C-API, I always got the warnings mentioned in the subject of this article.
1. warning LNK4070: /OUT:ntrigger.dll directive in .EXP differs from output filename ‘output\w32\ntrigger32.dll’; ignoring directive
This is an easy one to fix. Just make sure that the LIBRARY statement in your exports.def has the same value as the output file. So my exports.def contained LIBRARY “ntrigger” ( which was correct at some point of the dev process ) But I changed the output to ntrigger32.dll. So changing ntrigger to ntrigger32 in exports.def will stop the warning from being displayed.
2. warning LNK4199: /DELAYLOAD:OleAcc.dll ignored; no imports found from OleAcc.dll
This warning seems to be a common one and can be ignored. But I do not like to see warnings or errors during the build process. After doing a little research, I finally found the cause and how to avoid the warning.
First I thought that putting OleAcc.dll as an ignored DLL into the “Ignore Specific Lirary” field in the Linker –> Input section of the project properties would do the trick. But then you will get another warning along with the LNK4199 warning.
In the project’s properties Linker –> Input section, click on the button on the Delay Loaded DLL. You can see a inheritance of OleAcc.dll. Uncheck the inheritance button. It’ll make it.
No more warnings …