{"id":10673,"date":"2011-05-13T07:00:00","date_gmt":"2011-05-13T07:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2011\/05\/13\/if-undecorated-names-are-given-in-the-dll-export-table-why-does-link-dump-exports-show-me-decorated-names\/"},"modified":"2011-05-13T07:00:00","modified_gmt":"2011-05-13T07:00:00","slug":"if-undecorated-names-are-given-in-the-dll-export-table-why-does-link-dump-exports-show-me-decorated-names","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20110513-00\/?p=10673","title":{"rendered":"If undecorated names are given in the DLL export table, why does link \/dump \/exports show me decorated names?"},"content":{"rendered":"<p>\nIf you run the <code>link \/dump \/exports<\/code> command on a DLL\nwhich exports only undecorated names,\nyou may find that in addition to showing those undecorated names,\nit also shows the fully-decorated names.\n<\/p>\n<blockquote CLASS=\"q\">\n<p>\nWe&#8217;re building a DLL and for some functions, we have\nchosen to suppress the names from the export\ntable by using the NONAME keyword.\nWhen we dump the exports, we still see the names.\nAnd the functions which we did want to export by name are showing up\nwith their decorated names even though we list them in the DEF\nfile with undecorated names.\nWhere is the decorated name coming from?\nIs it being stored in the DLL after all?\n<\/p>\n<pre>\n        1        00004F1D [NONAME] _Function1@4\n        2        000078EF [NONAME] _Function2@12\n        3        00009063 [NONAME] _Function3@8\n<\/pre>\n<\/blockquote>\n<p>\nThe original decorated names are not stored in the DLL.\nThe <code>link \/dump \/exports<\/code> command is sneaky\nand looks for a matching PDB file and, if finds one,\nextracts the decorated names from there.\n<\/p>\n<p>\n(How did I know this?\nI didn&#8217;t, but I traced each file accessed by the\n<code>link \/dump \/exports<\/code> command and observed that\nit went looking for the PDB.)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you run the link \/dump \/exports command on a DLL which exports only undecorated names, you may find that in addition to showing those undecorated names, it also shows the fully-decorated names. We&#8217;re building a DLL and for some functions, we have chosen to suppress the names from the export table by using the [&hellip;]<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[26],"class_list":["post-10673","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-other"],"acf":[],"blog_post_summary":"<p>If you run the link \/dump \/exports command on a DLL which exports only undecorated names, you may find that in addition to showing those undecorated names, it also shows the fully-decorated names. We&#8217;re building a DLL and for some functions, we have chosen to suppress the names from the export table by using the [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/10673","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=10673"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/10673\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=10673"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=10673"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=10673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}