I created a dll file with gcc(mingw). When I start my application Microsoft Security Essentials notifies me:
Security Essentials detected items on your PC that it doesn't recognize
Why does this happen only with my DLL and not with other DLLs?
migrated from stackoverflow.com Oct 1 '12 at 3:08
This question came from our site for professional and enthusiast programmers.
MSE and all other antivirus products recognize viruses by virus signatures. Each such antivirus uses a database containing many thousands of signatures. A signature is a pattern-recognition rule that supposedly identifies a virus file by its binary hash. Some viruses add files, others modify existing system files, some others make registry changes that signal their presence.
For more details see What is a Virus Signature?.
The simplest way to stop this message is in MSE is to go to the Settings tab and add the dll file or its folder to the list of Excluded Files and Locations.
You might also check if under MAPS you have opted for "Advanced membership" so that MSE feels free to prompt you to send unknown items to be analyzed. Set this to "Basic membership" or even if the message continues to "I don't want to join".
Otherwise, you could try and submit your dll to Microsoft at the Submit a sample page, in the hope that this will render your dll into a "known" dll, but don't hope for too much.
Microsoft both has a page for sending in false positives and negatives as well as resources for software vendors. You could also exclude those filetypes (or preferably specific files you know aren't viruses from the settings tab.
My guess would be MS gets hashes and information on common DLLs and yours is uncommon.