Notes C API – LNK4070 and LNK4199 warnings in compiler

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 …

2 thoughts on “Notes C API – LNK4070 and LNK4199 warnings in compiler

  1. Do those warnings happen when you compiling Notes/Domino C-API samples? Or it’s from your program? Thanks!

  2. The LNK4070 warning was specific for my project. In fact, it can be any project, if the export definition is wrong.

    The LNK4199 I see sporadically even in a clean, new project. Sometimes the OleAcc.dll is set for inherit, sometimes not.

Comments are closed.