После загрузки ничего особенного в библиотеках DLL нет, поэтому нет никакого способа, которым распределение консолей могло бы быть иным для DLL, чем для EXE, который первоначально загрузил ее.
Сказав это, процесс может быть связан только с одной консолью за раз, поэтому, если к процессу уже подключена консоль, то выделение новой не будет делать ничего (я предполагаю, что вы проверяете возвращаемое значение AllocConsole ? Что оно возвращает? Что возвращает GetLastError
?)
Есть и другие возможности. Например, если ваша DLL загружена в службу, то служба (скорее всего) будет работать под другой оконной станцией, чем текущий вошедший в систему пользователь, поэтому, если вы создадите окно консоли, вы не сможете его увидеть. .