In my research, I have read that C does not support overloading. However, this application is using C++, not C. I also ***can't modify*** stdio.h. The error was created when I tried to move an application/project that was written in Visual Studio 2003 to Visual Studio 2010.

I am getting the errors: 

> 
> error C2733: second C linkage of overloaded function '\_tempnam\_dbg' not allowed c:...\stdio.h
> 
> 
> 

and

> 
> error C2733: second C linkage of overloaded function '\_wtempnam\_dbg' not allowed c:...\include\stdio.h
> 
> 
> 

The code which causes the corresponding errors:

```
_Check_return_ _CRTIMP char * __cdecl _tempnam(_In_opt_z_ const char * _DirName, _In_opt_z_ const char * _FilePrefix);

...

_Check_return_ _CRTIMP wchar_t * __cdecl _wtempnam(_In_opt_z_ const wchar_t * _Directory, _In_opt_z_ const wchar_t * _FilePrefix);

```

I have read from [this SO solution](https://stackoverflow.com/questions/7840203/error-c2733-second-c-linkage-of-overloaded-function-function-not-allowed "this SO solution") that *"Such error message appears when an extern 'C' function is declared with a different set of parameters."*.  

**Edited:**
This being said, this is the only area in my solution that contains anything about `tempnam` and `wtempnam`.