"Dimitrie O. Paun" dimi@cs.toronto.edu writes:
Applied to our case, if we have fooW and fooA, then typically fooA looks as such:
fooA() { strdupAtoW fooW strdupWtoA }
So, even if we do go only from A->W at the API level, the actual string conversions do go both ways.
Very few functions would need something like that. The normal case would be:
fooA() { strdupAtoW fooW copy W back into A if needed }
The W->A case is not a strdup, it's a simple WideCharToMultiByte.
Probably at least 90% of the existing calls to HEAP_strdupWtoA are because of a W function calling a A function, which is precisely what should be discouraged.