The native DLL is compiled. In theory, the functions within it will have the same performance regardless of what program is calling it, be it C++, C#, VBA, etc.. The theory falls down once you look at the program in question as a whole. Due to paging, the memory cache, pipelining issues, how the call is made (i.e interop) and so forth, the actual performance in real world conditions may vary.