Cant create window как исправить

Войти или зарегистрироваться

Не запускается игра.

Тема в разделе “Персональный компьютер”, создана пользователем xonnel, 26 сен 2008.

Страница 1 из 2


  1. xonnel

    xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    При запуске вылезает табличка – Cant create window. Раньше игра запускалась нормально.Запускаю через Daemon tools. :(


    xonnel,
    26 сен 2008

    #1


  2. The REAL

    The REAL
    Only On NEOG

    Сообщения:
    12.321
    Симпатии:
    1.422
    Баллы:
    623

    Если раньше запускалось, то что-то поменялось с того момента


    The REAL,
    26 сен 2008

    #2


  3. Ken Rosenberg

    Ken Rosenberg
    Well-Known Member

    Сообщения:
    7.503
    Симпатии:
    2.769
    Баллы:
    523

    А чё за игра?


    Ken Rosenberg,
    26 сен 2008

    #3


  4. Bahamut2k

    Bahamut2k
    shpongled

    Сообщения:
    10.147
    Симпатии:
    935
    Баллы:
    523

    Вы пробовали выключить и снова включить компьютер? =)


    Bahamut2k,
    27 сен 2008

    #4


  5. xonnel

    xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Как достать соседа 3 и 4.


    xonnel,
    27 сен 2008

    #5


  6. xonnel

    xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    100 раз


    xonnel,
    27 сен 2008

    #6


  7. xonnel

    xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    А из-за чего окошко то не можеть быть создано? Может это как то связано с кодеками.Последнее время разные видеофайлы проигрываются только разными прогами.


    xonnel,
    27 сен 2008

    #7


  8. Ken Rosenberg

    Ken Rosenberg
    Well-Known Member

    Сообщения:
    7.503
    Симпатии:
    2.769
    Баллы:
    523

    Слушай, а ты с тех пор как игра у тебя нормально работала Daemon Tools не обновлял?


    Ken Rosenberg,
    27 сен 2008

    #8


  9. xonnel

    xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Сейчас запускаю с другой версией.Со старой версией вообще почему то работать не стало.Требует вставить диск.Хотя раньше проходило без диска.Сейчас стоит версия 4.11.Была 4.0.3.Другие игры запускаются через DT пока нормально.


    xonnel,
    27 сен 2008

    #9


  10. LEONID

    LEONID
    Well-Known Member

    Сообщения:
    10.555
    Симпатии:
    3.263
    Баллы:
    623

    Боян. Уже давным давно вышла версия 4.30.1 :)

    А насчет того, что раньше шло без диска… Дык обновилось что-то через инет и все) Вычислили твоего демона :)


    LEONID,
    27 сен 2008

    #10


  11. Ken Rosenberg

    Ken Rosenberg
    Well-Known Member

    Сообщения:
    7.503
    Симпатии:
    2.769
    Баллы:
    523

    В данном случае придерживаюсь того-же мнения.


    Ken Rosenberg,
    28 сен 2008

    #11


  12. xonnel

    xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Что что-то поменялось и так понятно.Вот узнать бы конкретную причину.Ведь здесь именно не может быть создано окно.А так обычно просто ошибку выдает если что-то не так.


    xonnel,
    28 сен 2008

    #12


  13. UnlimiteD

    UnlimiteD
    New Member

    Сообщения:
    1.594
    Симпатии:
    73
    Баллы:
    0

    Винду переставь.


    UnlimiteD,
    28 сен 2008

    #13


  14. xonnel

    xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Это единственное что остается.Тока боюсь что и это не поможет.Хотя посмотрим.:)


    xonnel,
    28 сен 2008

    #14


  15. The REAL

    The REAL
    Only On NEOG

    Сообщения:
    12.321
    Симпатии:
    1.422
    Баллы:
    623

    неужто такая стоящая вещь, что стоит стольких усилий?


    The REAL,
    29 сен 2008

    #15


  16. Ken Rosenberg

    Ken Rosenberg
    Well-Known Member

    Сообщения:
    7.503
    Симпатии:
    2.769
    Баллы:
    523

    Скорее всего должно помочь.


    Ken Rosenberg,
    29 сен 2008

    #16


  17. borizzz

    borizzz
    New Member

    Сообщения:
    95
    Симпатии:
    5
    Баллы:
    0

    по теме

    При запуске игры не забудь вырубить инет.


    borizzz,
    29 сен 2008

    #17


  18. xonnel

    xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Нет,просто интересно в чем дело.Да и вдруг с другими играми будет тоже самое.Это тоже не помогло.


    xonnel,
    30 сен 2008

    #18


  19. xonnel

    xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Не помогло. Че дальше то делать?:(


    xonnel,
    9 окт 2008

    #19


  20. xonnel

    xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Все заработало только после того как обновила драйвера для видяхи.


    xonnel,
    17 ноя 2008

    #20

(Вы должны войти или зарегистрироваться, чтобы ответить.)

Показать игнорируемое содержимое

Страница 1 из 2

  • Войти через Facebook
  • Войти через Twitter
  • Войти через Google
Ваше имя или e-mail:
У Вас уже есть учётная запись?
  • Нет, зарегистрироваться сейчас.
  • Да, мой пароль:
  • Забыли пароль?

Запомнить меня


Next Stage

Поиск

  • Искать только в заголовках
Сообщения пользователя:

Имена участников (разделяйте запятой).

Новее чем:
  • Искать только в этой теме
  • Искать только в этом разделе
    • Отображать результаты в виде тем

Быстрый поиск

  • Последние сообщения

Больше…

When I launch Visual Studio 2010 Ultimate, I get the error “Cannot create window”. Do you know of any solutions?

Venemo's user avatar

Venemo

18.4k12 gold badges84 silver badges123 bronze badges

asked Apr 20, 2010 at 5:51

Max's user avatar

In my case, it was installing IBM Client Access v6.1 service pack SI37891. When it installed the .NET 4 data provider it broke the XML file.

The file in question can be found here:
C:WindowsMicrosoft.NETFrameworkv4.0.30319Configmachine.config

An additional data provider was installed and a spurious XML close tag was added incorrectly:

<DbProviderFactories>
<add name="IBM DB2 for i5/OS .NET Provider" ...... /></DbProviderFactories>
<add name="Microsoft SQL Server Compact Data Provider" ....../>
</DbProviderFactories>

answered Sep 16, 2010 at 10:44

alock's user avatar

alockalock

1011 silver badge3 bronze badges

3

if you install and remove netframework 4.5 maybe it happens, reinstall the netframework 4.5

answered Mar 19, 2013 at 15:08

zamoldar's user avatar

zamoldarzamoldar

53810 silver badges13 bronze badges

The same thing happened to me today for the first time while using VS2010 premium on Windows 7. The only thing different since the last time I used it (16hrs ago) was Windows Update which the System Restore utility says only affected an unrelated local app on my machine, Grooveshark.

Anyway, I restored to the point created immediately before the update, and VS2010 doesn’t complain about not being able to “Create Window” anymore… don’t think this was related to a recent Resharper 5 install.

Hope this helps!

answered May 30, 2010 at 3:27

asadiq's user avatar

I found that my machine.config file was not editable. I couldn’t even open it to look at it. I’m not sure why. I ended up uninstalling .NET framework 4.5 and re-installing .NET framework 4.0. I was also having trouble with Visual Studio 2012. I’m re-installing that now to see if that works. For the record, I have IBM System i Access for Windows installed on my machine. That may have caused the problem to start with.

answered May 28, 2013 at 14:48

Michael Earls's user avatar

Michael EarlsMichael Earls

1,4471 gold badge14 silver badges25 bronze badges

I had this issue when attempting to start up SQL Server Management Studio 2012. Cleaning out the following folders fixed it:

  • %SYSTEMDRIVE%Users<Username>AppDataLocalMicrosoftSQL Server Management Studio
  • %SYSTEMDRIVE%Users<Username>AppDataRoamingMicrosoftSQL Server Management Studio
  • C:Users<Username>AppDataLocalTemp
  • %SYSTEMDRIVE%WindowsTemp

Hope this helps.

answered Jul 16, 2013 at 12:29

Sameer Singh's user avatar

Sameer SinghSameer Singh

1,3481 gold badge19 silver badges47 bronze badges

In my case, inspecting the Event Viewer, I discovered an “Error 1704. An installation for Microsoft .NET Framework is currently suspended”.

So the solution was running Windows Update and installing the pending update for .NET.

answered Jan 22, 2015 at 8:11

Lucas Ayala's user avatar

Lucas AyalaLucas Ayala

2,2592 gold badges16 silver badges20 bronze badges

In my case i made same C:WindowsMicrosoft.NETFrameworkv4.0.30319Configmachine.config

So had to delete the double tags of DbProviderFactories that i had in file.

answered Sep 2, 2020 at 11:11

Mr None's user avatar

Run “Visual Studio Installer” and click repair on the affected VS version.

answered Oct 4, 2021 at 17:49

Akalanka Ekanayake's user avatar

Содержание

  1. HGE. Can’t create window 🙁
  2. Windows 10 Recovery drive error — Can’t create a recovery drive on this PC
  3. Replies (9) 
  4. Visual Studio 2010 “Cannot create window” error
  5. 8 Answers 8
  6. Can’t create new folder in windows 10

HGE. Can’t create window 🙁

Следующая проблема.
Небольшая игрушка, использующая HGE 1.7.

От клиента пришел лог с ошибкой в HGE: «Can’t create window».

Программа запускается либо в новом окне, либо как windowed. Никаких parent нет.
У меня не воспроизводится в нескольких различных средах 🙁

Кто-нибудь сталкивался с таким? В чем может быть дело?

Единственная идея — конфликт с другой игрой, которая использует HGE.

Единственная идея — конфликт с другой игрой, которая использует HGE.
я смог прекрасно запустить 4 примера с хге причем 2 из них были одинаковыми

а что у него за видюшка ? как минимум что то что dx8 держит нужно — под вмварей (для тестов запускал) оно именно такое в лог и кидает, как включил тестовую поддержку ускорения в варе всё запахало.

zxmd
>а что у него за видюшка ? как минимум что то что dx8 держит нужно — под вмварей
>(для тестов запускал) оно именно такое в лог и кидает, как включил тестовую
>поддержку ускорения в варе всё запахало.

хм. ?
У меня на WMware пишет: «Can’t create D3D device».
По коду HGE видно, что создание окна идет до инициализации DirectX. Т.е. валится в самом начале. Еще до DirectX.

Ещё раз проверил по варей, про Can’t create D3D device не слова.
Возможно разные версии вари.

ret
>Единственная идея — конфликт с другой игрой, которая использует HGE.
>я смог прекрасно запустить 4 примера с хге причем 2 из них были одинаковыми

Скачал с http://www.relishgames.com игру 15-шки. Запустил два раза. Во втором инстансе нет фона. Первый убиваешь — во втором фон появляется. Тоже самое когда запускаешь 15-шки и мою игру.
Известная проблема?

zxmd
>Ещё раз проверил по варей, про Can’t create D3D device не слова.
>Возможно разные версии вари.

На какой версии WMware проверялось? А операционка какая?

Хост — Vista,
Госевая — XP SP2
Версия вари — 6.0.0 — Билд 45731

Kind
запускал игру 15-шки в 3 копиях одновременно. там нет не коких проблем. все работает отлично. какое у тебя железо и софт?

>запускал игру 15-шки в 3 копиях одновременно. там нет не коких проблем. все
>работает отлично. какое у тебя железо и софт?

видюха Matrox Millennium G550, 32 метра. Думаю, что банально памяти не хватает.

Процессор 2.8GHz, оперативка 2 гига.

Как мне помнится матрас вообще достаточно проблемная в плане 3Д карточка.

экий раритет этот твой Matrox (не бось музей ограбил покайся ))) попробуй на других видеокартах если все будет ок ну тогда сам понимаешь )) (кстати а что там с логом от клиента. у него какое жилезо)

ret
>экий раритет этот твой Matrox (не бось музей ограбил покайся ))) попробуй на
>других видеокартах если все будет ок ну тогда сам понимаешь )) (кстати а что
>там с логом от клиента. у него какое жилезо)

Да, раритет. На других видюхах нормально. Воспрос в репрезентативности выборки 🙂
Клиент молчит.

Kind
если клиент все же заговорит то хотелось бы узнать что у него за железо. очень интересно.

Сообщение типа: «Can’t create D3D device» возникло на одном из компов, где тестили игру. Там был Директх9.0, винда 2000, много мозгов, но видяха Riva TNT 2.

О сообщение: «Can’t create window» не слышал.

Windows 10 Recovery drive error — Can’t create a recovery drive on this PC

  • This is a laptop, nothing plugged in.
  • Was an upgrade from Windows 8.1
  • There is no recovery partition just a vanilla system boot drive
  • I get the same failure on my Windows 10 desktop
  • sfc/scannow has no errors.
  • All drivers are up to date
  • Nothing obvious in error logs
  • Checked other posts, no solutions that seem obvious .

Thank you for any help or questions.

Thank you for posting the query on Microsoft Community. I am glad to assist you on this.

  • Do you have enough space in your external drive or disk?
  • Did you make any changes to the computer prior to this issue?
  • Have you created a recovery media previously on the computer?

As per the issue description, it seems like you are unable to create a system image recovery driver using a USB drive on the computer as it prompts an error message “We cannot create a recovery drive on this PC. Some required files are missing.

I would suggest you to follow the below steps and try to create a recovery drive and check if it helps.

    From the taskbar, search for Create a recovery drive and then select it. You might be asked to enter an admin password or confirm your choice.

When the tool opens, make sure Back up system files to the recovery drive is selected and then select Next.

Connect a USB drive to your PC, select it, and then select Next > Create. A lot of files need to be copied to the recovery drive, so this might take a while.

When it’s done, you might see a Delete the recovery partition from your PC link on the final screen. If you want to free up drive space on your PC, select the link and then select Delete. If not, select Finish.

You can also use Windows 10 media creation tool to troubleshoot problems when your PC can’t start.

Kindly let us know if you need any further assistance with Windows. We are glad to assist you.

3 people found this reply helpful

Was this reply helpful?

Sorry this didn’t help.

Great! Thanks for your feedback.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

How satisfied are you with this reply?

Thanks for your feedback.

Yeah I cannot do what you are asking based on what the error message says. Regardless of whether or not I try and backup system files or not it just ends in an error as shown on the screenshot.

I don’t have an issue with the computer right now not booting but wanted to create a recovery drive just in case I do.

  • I have never created recovery media on this computer before or my laptop that has the same issue.
  • Yes the USB stick has plenty of room and I selected not to backup system files anyways but again it fails before you even get to pick the USB stick or drove to use.
  • This is just an upgrade from windows 8.1 to Windows 10, nothing more.

The only thing I can think of is that I migrated my system drive to an SSD. Is there a possibility that the migration did not copy some system files that Windows 10 relies on?

3 people found this reply helpful

Was this reply helpful?

Sorry this didn’t help.

Great! Thanks for your feedback.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

How satisfied are you with this reply?

Thanks for your feedback.

OK I think it’s related to this

Happy Christmas/Holidays to me 🙂

4 people found this reply helpful

Was this reply helpful?

Sorry this didn’t help.

Great! Thanks for your feedback.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

How satisfied are you with this reply?

Thanks for your feedback.

Try the below methods and check.

Method 1: Disable Antivirus software

Let’s disable the Antivirus software temporarily on your computer and check if it helps.

Note: Antivirus software can help protect the computer against viruses and other security threats. In most cases, you should not disable the antivirus software. If you do have to temporarily disable it to install other software, you should re-enable it as soon as you’re done. If you are connected to the Internet or a network during the time the antivirus software is disabled, your computer is vulnerable to attacks.

After disabling the Antivirus software temporarily on your computer, try creating recovery drive and check.

If the issue still persist, perform the below steps.

Method 2:

I would suggest you to run the Deployment Image Servicing and Management (DISM) tool and then check for the issue.

1. Open an elevated command prompt. Press Win Key + X, click Command Prompt (Admin).

2. Type the following command, and then press Enter. It may take several minutes for the command operation to be completed.
dism.exe /online /cleanup-image /scanhealth

3. After you get message “The operation completed successfully” type second command and press enter. It will take some time to finish.
dism.exe /online /cleanup-image /restorehealth

Hope this helps. Please do let us know if you need any further assistance.

11 people found this reply helpful

Was this reply helpful?

Sorry this didn’t help.

Great! Thanks for your feedback.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

How satisfied are you with this reply?

Thanks for your feedback.

Yeah dsim did not work.

worked for me and now I am able to do backups

Thanks for all your help

8 people found this reply helpful

Was this reply helpful?

Sorry this didn’t help.

Great! Thanks for your feedback.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

How satisfied are you with this reply?

Thanks for your feedback.

I inserted a new USB drive into my laptop, started drive recovery and after a while it found the drive. However, on proceeding with the process I was then getting the error message “We can’t create a recovery drive on this PC”.

The steps I took to resolved this were:

  1. Create a new partition on the USB drive.
  2. Reformat the USB drive as NTFS
  3. Make it bootable
  4. Re-run the Windows 10 Create Recovery Drive utility

I am not sure that steps 2 & 3 are required as the utility will reformat the drive anyway but I haven’t tested this process omitting them.

Detailed instructions are as follows (thanks to www.indestructables.com for pointing me in the right direction here)

  1. Insert your USB flash drive to your running computer. As the first step, we need to run Command Prompt as administrator. To do this, we need to find cmd by typing ‘cmd’ in the search box on Windows Start Menu. After search result for ‘cmd’ appears, right click on it and select «Run as administrator».
  2. Type ‘diskpart’ on Command Prompt (without quotes) and hit Enter. Wait for a while until the DISKPART program run.
  3. Type ‘list disk’ to view active disks on your computer and hit Enter. There would be seen that the active disks shown as Disk 0 for hard drive and Disk 1 for your USB flashdrive with its total capacity.
  4. Type ‘select disk 1’ to determine that disk 1 would be processed in the next step then hit Enter.
  5. Type ‘clean’ and hit Enter to remove all of data in the drive.
  6. Type ‘create partition primary’ and hit Enter. Creating a primary partition and further recognized by Windows as ‘partition 1’.
  7. Type ‘select partition 1’ an hit Enter. Choosing the ‘partition 1’ for setting up it as an active partition.
  8. Type ‘active’ and hit Enter. Activating current partition.
  9. Type ‘format fs=ntfs quick’ and hit Enter. Formatting current partition as NTFS file system quickly.
  10. Type ‘exit’ and hit Enter. Leaving DISKPART program but don’t close the Command Prompt.
  11. Type ‘ bootsect /nt60 d: ‘ and hit Enter. Creating boot sector on D: drive (USB flash drive)

Visual Studio 2010 “Cannot create window” error

When I launch Visual Studio 2010 Ultimate, I get the error «Cannot create window». Do you know of any solutions?

8 Answers 8

In my case, it was installing IBM Client Access v6.1 service pack SI37891. When it installed the .NET 4 data provider it broke the XML file.

The file in question can be found here: C:WindowsMicrosoft.NETFrameworkv4.0.30319Configmachine.config

An additional data provider was installed and a spurious XML close tag was added incorrectly:

if you install and remove netframework 4.5 maybe it happens, reinstall the netframework 4.5

Rename msvcm100.dll to msvcm100.dll.old in c:windowssystem32

Run Visual Studio 2010 repair and msvcm100.dll should get recreated.

The same thing happened to me today for the first time while using VS2010 premium on Windows 7. The only thing different since the last time I used it (16hrs ago) was Windows Update which the System Restore utility says only affected an unrelated local app on my machine, Grooveshark.

Anyway, I restored to the point created immediately before the update, and VS2010 doesn’t complain about not being able to «Create Window» anymore. don’t think this was related to a recent Resharper 5 install.

Hope this helps!

I found that my machine.config file was not editable. I couldn’t even open it to look at it. I’m not sure why. I ended up uninstalling .NET framework 4.5 and re-installing .NET framework 4.0. I was also having trouble with Visual Studio 2012. I’m re-installing that now to see if that works. For the record, I have IBM System i Access for Windows installed on my machine. That may have caused the problem to start with.

I had this issue when attempting to start up SQL Server Management Studio 2012 . Cleaning out the following folders fixed it:

  • %SYSTEMDRIVE%Users AppDataLocalMicrosoftSQL Server Management Studio
  • %SYSTEMDRIVE%Users AppDataRoamingMicrosoftSQL Server Management Studio
  • C:Users AppDataLocalTemp
  • %SYSTEMDRIVE%WindowsTemp

Can’t create new folder in windows 10

When right clicking on the desktop or inside a folder the option to create a new folder does not appear, also, when clicking on the «new folder» button on the file explorer or pressing «ctrl + shift + n» does nothing.

I’ve already tried both methods stated in the question «Windows 10 Can’t create a new folder in File Explorer and Can’t right click on desktop»and it had no results.

Please try these methods and see if they help you:

Method 1: Run System File Checker (SFC) scan:

1. Search for ‘command prompt’ using Cortana or Windows Search.

2. From results, right click on Command Prompt and select Run as administrator.

3. Type sfc /scannow command and press Enter key.

4. Let the command complete and then reboot the machine.

Method 2: Reset File Explorer (explorer.exe) process:

1. Press Windows Key + R and type SYSDM.CPL in Run. Click OK or press Enter key.

2. In System Properties window, switch to Advanced tab, click Settings under Performance.

3. Next, in Performance Options, under Processor scheduling, make sure that Adjust for best performance of: is set to Programs.

4. Then in the same window, under Virtual memory, click Settings button.

5. On Virtual Memory page, make sure Automatically manage paging file sizes for all drives option is checked. Click OK, then Apply, OK on rest of windows.

6. Reboot the machine and see if issue is resolved now.

Method 3: Perform clean boot:

Method 4: Perform repair upgrade:

If above methods didn’t helped, try performing repair upgrade using this guide:

Let us know if this helps!

Microsoft MVP (Windows IT Pro), since 2014 · Windows Insider MVP · Windows Help (www.kapilarya.com)

18 people found this reply helpful

Was this reply helpful?

Sorry this didn’t help.

Great! Thanks for your feedback.

How satisfied are you with this reply?

Thanks for your feedback, it helps us improve the site.

Meph2015

15 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 18

1

09.02.2016, 13:19. Показов 1206. Ответов 7

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

В общем, написал я программку, на windows 7 она работает прекрасно, но на windows 10 не создается окно (код попадает в блок с ошибкой), проблема в том, что у меня нет возможности лично запустить проект на в10, всё что я могу – это скидывать уже откомпилированные экзешники знакомому)) Может кто-нибудь подсказать, в чем может заключаться проблема?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <Windows.h>
#include <string>
#include "resource.h"
#include <TlHelp32.h>
#include <fstream>
#include "MemReader.h"
 
 
using namespace std;
 
 
HWND hwnd;
HINSTANCE hInstance2;
DWORD64 var;
fstream Logs;
 
LRESULT CALLBACK DS2ZERO(HWND, UINT, UINT, LONG);
 
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR cmdLine, int nCmdShow){
 
    MSG Msg;
    WNDCLASSEX WndClass;
    char name[] = "ClassName";
    hInstance2 = hInstance;
    
    WndClass.style = CS_HREDRAW | CS_VREDRAW;
    WndClass.lpfnWndProc = (WNDPROC)DS2ZERO;
    WndClass.cbClsExtra = 0;
    WndClass.cbWndExtra = 0;
    WndClass.hInstance = hInstance;
    WndClass.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
    WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
    WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    WndClass.lpszMenuName = NULL;
    WndClass.lpszClassName = name;
    WndClass.cbSize = sizeof(WNDCLASSEX);
    WndClass.hIconSm = NULL;
 
    if (!RegisterClassEx(&WndClass)){
        MessageBox(NULL, "Cant register class", "Error", MB_OK);
        exit(1);
    }
 
    HDC hDCScreen = GetDC(NULL);
    int Horres = GetDeviceCaps(hDCScreen, HORZRES);
    int Vertres = GetDeviceCaps(hDCScreen, VERTRES);
    ReleaseDC(NULL, hDCScreen);
 
    hwnd = CreateWindow(name, "DS2RANK", WS_OVERLAPPED | WS_SYSMENU, (Horres / 2) - 300, (Vertres / 2) - 300, 600, 600, NULL, NULL, hInstance, NULL);
 
    if (!hwnd){
        MessageBox(NULL, "Cant create window", "Error", MB_OK);
        exit(1);
    }
 
    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);
    
    while (GetMessage(&Msg, NULL, 0, 0)){
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
 
    return Msg.wParam;
 
 
}



0



Эксперт PHP

3105 / 2590 / 1219

Регистрация: 14.05.2014

Сообщений: 7,236

Записей в блоге: 1

09.02.2016, 13:21

2

Meph2015, какая ошибка? Текст, код ошибки приведите.



0



Meph2015

15 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 18

09.02.2016, 13:23

 [ТС]

3

Просто эта программа при запуске не создает окно, попадает сюда:

C++
1
2
3
4
    if (!hwnd){
        MessageBox(NULL, "Cant create window", "Error", MB_OK);
        exit(1);
    }

Это сообщение и выводится. Проблема только на в10 (у всех), на в7 всё создается нормально.



0



_lunar_

Эксперт С++

3562 / 2817 / 450

Регистрация: 03.05.2011

Сообщений: 5,193

Записей в блоге: 22

09.02.2016, 13:56

4

Цитата
Сообщение от Meph2015
Посмотреть сообщение

Это сообщение и выводится.

в чём проблема поставить брейкпоинт и посмотреть почему функция CreateWindow возвращает NULL.

ну и 100% рабочий код окна для Windows 10

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_DESTROY:
        {
            PostQuitMessage(0);
            return 0;
        }
    }
    return DefWindowProc(hWnd, message, wParam, lParam);
}
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASSEX wc;
    ZeroMemory(&wc, sizeof(WNDCLASSEX));
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(0, IDC_ARROW);
    wc.lpszClassName = "WindowClass";
    RegisterClassEx(&wc);
    HWND hWnd = CreateWindowEx(0, "WindowClass", "Test", WS_SYSMENU | WS_MINIMIZEBOX,
        (GetSystemMetrics(SM_CXSCREEN) - 1024) / 2, (GetSystemMetrics(SM_CYSCREEN) - 576) / 2,
        1024, 576, 0, 0, hInstance, 0);
    ShowWindow(hWnd, nCmdShow);
    MSG msg;
    while (1)
    {
        while (PeekMessage(&msg, 0, 0, 0, 1))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        if (msg.message == WM_QUIT) break;
    }
    return (int)msg.wParam;
}



0



15 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 18

09.02.2016, 14:36

 [ТС]

5

Спасибо за код, но проблема обнаружилась в другом. Оказывается, окно не создается на в10 из-за того, что я перевел проект в х64 режим (в свойствах проекта). Просто взял шаблон пустого окошка, в режиме win32 создается, а в х64 – нет (повторюсь, только на в10, при этом сама операционка там стоит 64 битная). Есть способ как-то это исправить? х64 режим этой программе необходим.

Миниатюры

Ошибка при создании окна в Windows 10
 



0



232 / 135 / 19

Регистрация: 10.11.2015

Сообщений: 305

09.02.2016, 19:42

6

Цитата
Сообщение от Meph2015
Посмотреть сообщение

всё что я могу – это скидывать уже откомпилированные экзешники знакомому

Ну дак выведите код ошибки (GetLastError) в MessageBox, и пусть вам знакомый его продиктует. А вообще попробуйте с опцией /Zp8 откомпилировать.



0



15 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 18

09.02.2016, 21:18

 [ТС]

7

jupman, расставил по пути хода WinMain функции MessageBox’ы с GetLastError в 6 разных местах (последнее место там же, где и сообщение о невозможности создать окно), из 6 мессаджей вылезли такие коды – 0 0 1813 0 0 0, 1813 появлялось после заполнения WndClass из-за LoadIcon, после замены хендла в функции на NULL (всё таки иконка системная берется) ошибка пропала. Везде нули, ошибок нет.. не понимаю в чем проблема.
/Zp8 тоже никак не помогло



0



232 / 135 / 19

Регистрация: 10.11.2015

Сообщений: 305

09.02.2016, 22:36

8

Meph2015, ну во первых ошибку нужно проверять только когда функция потерпела неудачу. 1813 – это значит ресурс данного типа в образе отсутствует (ERROR_RESOURCE_TYPE_NOT_FOUND). Вот кстати список кодов: (System Error Codes). В общем залейте exe посмотреть.



0



Войти или зарегистрироваться

Не запускается игра.

Тема в разделе «Персональный компьютер», создана пользователем xonnel, 26 сен 2008.

Страница 1 из 2

  1. xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    При запуске вылезает табличка — Cant create window. Раньше игра запускалась нормально.Запускаю через Daemon tools. :(

  2. The REAL
    Only On NEOG

    Сообщения:
    12.321
    Симпатии:
    1.422
    Баллы:
    623

    Если раньше запускалось, то что-то поменялось с того момента

  3. Ken Rosenberg
    Well-Known Member

    Сообщения:
    7.501
    Симпатии:
    2.766
    Баллы:
    523


    Ken Rosenberg,
    26 сен 2008

  4. Bahamut2k
    shpongled

    Сообщения:
    10.147
    Симпатии:
    935
    Баллы:
    523

    Вы пробовали выключить и снова включить компьютер? =)

  5. xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Как достать соседа 3 и 4.

  6. xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63
  7. xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    А из-за чего окошко то не можеть быть создано? Может это как то связано с кодеками.Последнее время разные видеофайлы проигрываются только разными прогами.

  8. Ken Rosenberg
    Well-Known Member

    Сообщения:
    7.501
    Симпатии:
    2.766
    Баллы:
    523

    Слушай, а ты с тех пор как игра у тебя нормально работала Daemon Tools не обновлял?


    Ken Rosenberg,
    27 сен 2008

  9. xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Сейчас запускаю с другой версией.Со старой версией вообще почему то работать не стало.Требует вставить диск.Хотя раньше проходило без диска.Сейчас стоит версия 4.11.Была 4.0.3.Другие игры запускаются через DT пока нормально.

  10. LEONID
    Well-Known Member

    Сообщения:
    10.519
    Симпатии:
    3.228
    Баллы:
    623

    Боян. Уже давным давно вышла версия 4.30.1 :)

    А насчет того, что раньше шло без диска… Дык обновилось что-то через инет и все) Вычислили твоего демона :)

  11. Ken Rosenberg
    Well-Known Member

    Сообщения:
    7.501
    Симпатии:
    2.766
    Баллы:
    523

    В данном случае придерживаюсь того-же мнения.


    Ken Rosenberg,
    28 сен 2008

  12. xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Что что-то поменялось и так понятно.Вот узнать бы конкретную причину.Ведь здесь именно не может быть создано окно.А так обычно просто ошибку выдает если что-то не так.

  13. UnlimiteD
    New Member

    Сообщения:
    1.594
    Симпатии:
    73
    Баллы:
    0
  14. xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Это единственное что остается.Тока боюсь что и это не поможет.Хотя посмотрим.:)

  15. The REAL
    Only On NEOG

    Сообщения:
    12.321
    Симпатии:
    1.422
    Баллы:
    623

    неужто такая стоящая вещь, что стоит стольких усилий?

  16. Ken Rosenberg
    Well-Known Member

    Сообщения:
    7.501
    Симпатии:
    2.766
    Баллы:
    523

    Скорее всего должно помочь.


    Ken Rosenberg,
    29 сен 2008

  17. borizzz
    New Member

    Сообщения:
    95
    Симпатии:
    5
    Баллы:
    0

    по теме

    При запуске игры не забудь вырубить инет.

  18. xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Нет,просто интересно в чем дело.Да и вдруг с другими играми будет тоже самое.Это тоже не помогло.

  19. xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Не помогло. Че дальше то делать?:(

  20. xonnel
    Well-Known Member

    Сообщения:
    246
    Симпатии:
    12
    Баллы:
    63

    Все заработало только после того как обновила драйвера для видяхи.

(Вы должны войти или зарегистрироваться, чтобы ответить.)

Показать игнорируемое содержимое

Страница 1 из 2

  • Войти через Facebook
  • Войти через Twitter
  • Войти через Google
Ваше имя или e-mail:
У Вас уже есть учётная запись?
  • Нет, зарегистрироваться сейчас.
  • Да, мой пароль:
  • Забыли пароль?

Запомнить меня

Поиск

  • Искать только в заголовках
Сообщения пользователя:

Имена участников (разделяйте запятой).

Новее чем:
  • Искать только в этой теме
  • Искать только в этом разделе
    • Отображать результаты в виде тем

Быстрый поиск

  • Последние сообщения

Больше…

When I launch Visual Studio 2010 Ultimate, I get the error «Cannot create window». Do you know of any solutions?

Venemo's user avatar

Venemo

18.1k11 gold badges86 silver badges122 bronze badges

asked Apr 20, 2010 at 5:51

Max's user avatar

In my case, it was installing IBM Client Access v6.1 service pack SI37891. When it installed the .NET 4 data provider it broke the XML file.

The file in question can be found here:
C:WindowsMicrosoft.NETFrameworkv4.0.30319Configmachine.config

An additional data provider was installed and a spurious XML close tag was added incorrectly:

<DbProviderFactories>
<add name="IBM DB2 for i5/OS .NET Provider" ...... /></DbProviderFactories>
<add name="Microsoft SQL Server Compact Data Provider" ....../>
</DbProviderFactories>

answered Sep 16, 2010 at 10:44

alock's user avatar

alockalock

1011 silver badge3 bronze badges

3

if you install and remove netframework 4.5 maybe it happens, reinstall the netframework 4.5

answered Mar 19, 2013 at 15:08

zamoldar's user avatar

zamoldarzamoldar

52810 silver badges13 bronze badges

The same thing happened to me today for the first time while using VS2010 premium on Windows 7. The only thing different since the last time I used it (16hrs ago) was Windows Update which the System Restore utility says only affected an unrelated local app on my machine, Grooveshark.

Anyway, I restored to the point created immediately before the update, and VS2010 doesn’t complain about not being able to «Create Window» anymore… don’t think this was related to a recent Resharper 5 install.

Hope this helps!

answered May 30, 2010 at 3:27

asadiq's user avatar

I found that my machine.config file was not editable. I couldn’t even open it to look at it. I’m not sure why. I ended up uninstalling .NET framework 4.5 and re-installing .NET framework 4.0. I was also having trouble with Visual Studio 2012. I’m re-installing that now to see if that works. For the record, I have IBM System i Access for Windows installed on my machine. That may have caused the problem to start with.

answered May 28, 2013 at 14:48

Michael Earls's user avatar

Michael EarlsMichael Earls

1,4271 gold badge14 silver badges24 bronze badges

I had this issue when attempting to start up SQL Server Management Studio 2012. Cleaning out the following folders fixed it:

  • %SYSTEMDRIVE%Users<Username>AppDataLocalMicrosoftSQL Server Management Studio
  • %SYSTEMDRIVE%Users<Username>AppDataRoamingMicrosoftSQL Server Management Studio
  • C:Users<Username>AppDataLocalTemp
  • %SYSTEMDRIVE%WindowsTemp

Hope this helps.

answered Jul 16, 2013 at 12:29

Sameer Singh's user avatar

Sameer SinghSameer Singh

1,3481 gold badge20 silver badges47 bronze badges

In my case, inspecting the Event Viewer, I discovered an «Error 1704. An installation for Microsoft .NET Framework is currently suspended».

So the solution was running Windows Update and installing the pending update for .NET.

answered Jan 22, 2015 at 8:11

Lucas Ayala's user avatar

Lucas AyalaLucas Ayala

2,2192 gold badges16 silver badges19 bronze badges

In my case i made same C:WindowsMicrosoft.NETFrameworkv4.0.30319Configmachine.config

So had to delete the double tags of DbProviderFactories that i had in file.

answered Sep 2, 2020 at 11:11

Mr None's user avatar

Run «Visual Studio Installer» and click repair on the affected VS version.

answered Oct 4, 2021 at 17:49

Akalanka Ekanayake's user avatar

Meph2015

15 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 18

1

09.02.2016, 13:19. Показов 1135. Ответов 7

Метки нет (Все метки)


В общем, написал я программку, на windows 7 она работает прекрасно, но на windows 10 не создается окно (код попадает в блок с ошибкой), проблема в том, что у меня нет возможности лично запустить проект на в10, всё что я могу — это скидывать уже откомпилированные экзешники знакомому)) Может кто-нибудь подсказать, в чем может заключаться проблема?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <Windows.h>
#include <string>
#include "resource.h"
#include <TlHelp32.h>
#include <fstream>
#include "MemReader.h"
 
 
using namespace std;
 
 
HWND hwnd;
HINSTANCE hInstance2;
DWORD64 var;
fstream Logs;
 
LRESULT CALLBACK DS2ZERO(HWND, UINT, UINT, LONG);
 
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR cmdLine, int nCmdShow){
 
    MSG Msg;
    WNDCLASSEX WndClass;
    char name[] = "ClassName";
    hInstance2 = hInstance;
    
    WndClass.style = CS_HREDRAW | CS_VREDRAW;
    WndClass.lpfnWndProc = (WNDPROC)DS2ZERO;
    WndClass.cbClsExtra = 0;
    WndClass.cbWndExtra = 0;
    WndClass.hInstance = hInstance;
    WndClass.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
    WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
    WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    WndClass.lpszMenuName = NULL;
    WndClass.lpszClassName = name;
    WndClass.cbSize = sizeof(WNDCLASSEX);
    WndClass.hIconSm = NULL;
 
    if (!RegisterClassEx(&WndClass)){
        MessageBox(NULL, "Cant register class", "Error", MB_OK);
        exit(1);
    }
 
    HDC hDCScreen = GetDC(NULL);
    int Horres = GetDeviceCaps(hDCScreen, HORZRES);
    int Vertres = GetDeviceCaps(hDCScreen, VERTRES);
    ReleaseDC(NULL, hDCScreen);
 
    hwnd = CreateWindow(name, "DS2RANK", WS_OVERLAPPED | WS_SYSMENU, (Horres / 2) - 300, (Vertres / 2) - 300, 600, 600, NULL, NULL, hInstance, NULL);
 
    if (!hwnd){
        MessageBox(NULL, "Cant create window", "Error", MB_OK);
        exit(1);
    }
 
    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);
    
    while (GetMessage(&Msg, NULL, 0, 0)){
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
 
    return Msg.wParam;
 
 
}

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Эксперт PHP

3102 / 2587 / 1219

Регистрация: 14.05.2014

Сообщений: 7,231

Записей в блоге: 1

09.02.2016, 13:21

2

Meph2015, какая ошибка? Текст, код ошибки приведите.

0

Meph2015

15 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 18

09.02.2016, 13:23

 [ТС]

3

Просто эта программа при запуске не создает окно, попадает сюда:

C++
1
2
3
4
    if (!hwnd){
        MessageBox(NULL, "Cant create window", "Error", MB_OK);
        exit(1);
    }

Это сообщение и выводится. Проблема только на в10 (у всех), на в7 всё создается нормально.

0

_lunar_

Эксперт С++

3222 / 2481 / 429

Регистрация: 03.05.2011

Сообщений: 5,158

Записей в блоге: 21

09.02.2016, 13:56

4

Цитата
Сообщение от Meph2015
Посмотреть сообщение

Это сообщение и выводится.

в чём проблема поставить брейкпоинт и посмотреть почему функция CreateWindow возвращает NULL.

ну и 100% рабочий код окна для Windows 10

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_DESTROY:
        {
            PostQuitMessage(0);
            return 0;
        }
    }
    return DefWindowProc(hWnd, message, wParam, lParam);
}
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASSEX wc;
    ZeroMemory(&wc, sizeof(WNDCLASSEX));
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(0, IDC_ARROW);
    wc.lpszClassName = "WindowClass";
    RegisterClassEx(&wc);
    HWND hWnd = CreateWindowEx(0, "WindowClass", "Test", WS_SYSMENU | WS_MINIMIZEBOX,
        (GetSystemMetrics(SM_CXSCREEN) - 1024) / 2, (GetSystemMetrics(SM_CYSCREEN) - 576) / 2,
        1024, 576, 0, 0, hInstance, 0);
    ShowWindow(hWnd, nCmdShow);
    MSG msg;
    while (1)
    {
        while (PeekMessage(&msg, 0, 0, 0, 1))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        if (msg.message == WM_QUIT) break;
    }
    return (int)msg.wParam;
}

0

15 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 18

09.02.2016, 14:36

 [ТС]

5

Спасибо за код, но проблема обнаружилась в другом. Оказывается, окно не создается на в10 из-за того, что я перевел проект в х64 режим (в свойствах проекта). Просто взял шаблон пустого окошка, в режиме win32 создается, а в х64 — нет (повторюсь, только на в10, при этом сама операционка там стоит 64 битная). Есть способ как-то это исправить? х64 режим этой программе необходим.

Миниатюры

Ошибка при создании окна в Windows 10
 

0

232 / 135 / 19

Регистрация: 10.11.2015

Сообщений: 305

09.02.2016, 19:42

6

Цитата
Сообщение от Meph2015
Посмотреть сообщение

всё что я могу — это скидывать уже откомпилированные экзешники знакомому

Ну дак выведите код ошибки (GetLastError) в MessageBox, и пусть вам знакомый его продиктует. А вообще попробуйте с опцией /Zp8 откомпилировать.

0

15 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 18

09.02.2016, 21:18

 [ТС]

7

jupman, расставил по пути хода WinMain функции MessageBox’ы с GetLastError в 6 разных местах (последнее место там же, где и сообщение о невозможности создать окно), из 6 мессаджей вылезли такие коды — 0 0 1813 0 0 0, 1813 появлялось после заполнения WndClass из-за LoadIcon, после замены хендла в функции на NULL (всё таки иконка системная берется) ошибка пропала. Везде нули, ошибок нет.. не понимаю в чем проблема.
/Zp8 тоже никак не помогло

0

232 / 135 / 19

Регистрация: 10.11.2015

Сообщений: 305

09.02.2016, 22:36

8

Meph2015, ну во первых ошибку нужно проверять только когда функция потерпела неудачу. 1813 — это значит ресурс данного типа в образе отсутствует (ERROR_RESOURCE_TYPE_NOT_FOUND). Вот кстати список кодов: (System Error Codes). В общем залейте exe посмотреть.

0

I am aware of other instances of the «Cannot create the window» problem when starting Visual Studio 2010.

Today it happened to me.  After reinstalling/repair Visual Studio (Professional) 2010 from the installation disk didn’t solve the problem, I restored my Windows 7 (Home Edition) (Running as a Virtual Machine using Oracle’s Virtual Box) back to the state
on 10th January.  Low and behold Visual Studio worked again.

I then worked forward installing Windows Updates in small doses.

Firstly — it appears all attempts to update Office 2007 just fail and have been doing for sometime now.  Not sure why.  However more interestingly, The update to the .NET 4.5 framework labelled KB2858725 definitely causes Visual Studio to stop
working.

I installed it, Visual Studio failed, I restored the system to the restore point just before I installed it and Visual Studio started working again.

The question is how to I let someone know (other than post here like I just have) that there is a problem and this is the cause.

>
Почему не работает CreateWindow

  • Подписаться на тему
  • Сообщить другу
  • Скачать/распечатать тему



Сообщ.
#1

,
28.10.15, 15:42

    Проект на WinAPI без MFC и без ресурсов.
    Почему не отображается диалог, созданный с помощью CreateWindow

    ExpandedWrap disabled

      в главной процедуре обработки сообщений окна:

          case WM_CREATE:

              habout = about.CreateDlg(hwnd, hinst);

          case WM_COMMAND:

              switch (LOWORD(wparam))

              case IDM_START:

                  about.ShowDlg(habout);

    ExpandedWrap disabled

      в классе About

      LRESULT CALLBACK AboutDlgProc(HWND habout, UINT message, WPARAM wparam, LPARAM lparam)

      {

          switch (message)

          {

          case WM_INITDIALOG:

              return TRUE;

          case WM_COMMAND:

              switch (LOWORD(wparam))

              {

              case IDOK:

              case IDCANCEL:

                      EndDialog(habout, TRUE);

                      return TRUE;

              }

          }

          return FALSE;

      }

      HWND About::CreateDlg(HWND hwnd, HINSTANCE hinstance)

      {

          HWND habout;

          WNDCLASS w;

          DWORD dwStyle;

          memset(&w, 0, sizeof(WNDCLASS));

          w.style = CS_HREDRAW | CS_VREDRAW;

          w.lpfnWndProc = AboutDlgProc;

          w.hInstance = hinstance;

          w.hIcon = NULL;

          w.hCursor = LoadCursor(NULL, IDC_ARROW);

          w.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1);

          w.lpszMenuName = NULL;

          w.lpszClassName = «AboutClass»;

          RegisterClass(&w);

          dwStyle = DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION;

          habout = CreateWindow(«AboutClass», » About», dwStyle, 0, 0, 100, 200, hwnd, NULL, hinstance, NULL);

          //ShowWindow(hwnd, SW_SHOW);

          return habout;

      }

      void About::ShowDlg(HWND habout)

      {

          ShowWindow(habout, SW_SHOW);

      }

    dwStyle перепробовал разные варианты, безрезультатно. Ошибок нет, диалоговое окно не отображается.

    Сообщение отредактировано: Designer — 28.10.15, 15:42

    Wizard

    B.V.



    Сообщ.
    #2

    ,
    28.10.15, 16:22

      Цитата Designer @ 28.10.15, 15:42

      Ошибок нет

      Как это понимать? Как GetLastError == 0?


      Designer



      Сообщ.
      #3

      ,
      28.10.15, 16:29

        В смысле что приложение компилируется, запускается но при попытке вызвать диалог ни ответа, ни привета.
        Я уже попробовал CreateWindowEx и заодно поставил MessageBox

        ExpandedWrap disabled

          HWND About::CreateDlg(HWND hwnd, HINSTANCE hinstance)

          {

              InitCommonControls();

              HWND habout;

              WNDCLASSEX w;

              DWORD dwStyle;

              w.cbSize = sizeof(w);

              w.style = CS_HREDRAW | CS_VREDRAW;

              w.lpfnWndProc = AboutDlgProc;

              w.cbClsExtra = 0;

              w.cbWndExtra = 0;

              w.hInstance = hinstance;

              w.hCursor = LoadCursor(NULL, IDC_ARROW);

              w.hIcon = LoadIcon(NULL, IDI_APPLICATION);

              w.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

              w.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1);

              w.lpszMenuName = 0;

              w.lpszClassName = «AboutClass»;

              if (!RegisterClassEx(&w)) MessageBox(NULL, «Cannot register class», «Error», MB_OK | MB_ICONSTOP);

              dwStyle = WS_CHILD | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION;

              habout = CreateWindowEx(WS_EX_WINDOWEDGE, «AboutClass», » About», dwStyle, 0, 0, 100, 200, hwnd, NULL, hinstance, NULL);

              if(!habout) MessageBox(NULL, «Cannot create window», «Error», MB_OK | MB_ICONSTOP);

              //ShowWindow(hwnd, SW_SHOW);

              return habout;

          }

          void About::ShowDlg(HWND habout)

          {

              ShowWindow(habout, SW_SHOW);

              //UpdateWindow(habout);

          }

        Добавлено 28.10.15, 16:32
        Выводится сообщение «Cannot create window» класс регистрируется, но окно не создается, почему ?

        Сообщение отредактировано: Designer — 28.10.15, 16:32

        Wizard

        B.V.



        Сообщ.
        #4

        ,
        28.10.15, 16:34

          Цитата Designer @ 28.10.15, 16:29

          В смысле что приложение компилируется, запускается но при попытке вызвать диалог ни ответа, ни привета.

          Цитата MSDN

          CreateWindow

          If the function succeeds, the return value is a handle to the new window.
          If the function fails, the return value is NULL. To get extended error information, call GetLastError.


          Славян



          Сообщ.
          #5

          ,
          28.10.15, 16:42

            Цитата Designer @ 28.10.15, 16:29

            ExpandedWrap disabled

              dwStyle = WS_CHILD | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION;

            Цитата

            WS_CHILD The window is a child window. A window with this style cannot have a menu bar. This style cannot be used with the WS_POPUP style.

            Добавлено 28.10.15, 16:43

            Цитата

            WS_POPUPWINDOW = (WS_POPUP | WS_BORDER | WS_SYSMENU)


            ЫукпШ



            Сообщ.
            #6

            ,
            28.10.15, 21:54

              Цитата Designer @ 28.10.15, 15:42

              Проект на WinAPI без MFC и без ресурсов.

              Почитай книгу:
              Том1
              Том2
              диск с учебными исходниками к книге


              Designer



              Сообщ.
              #7

              ,
              29.10.15, 15:46

                ЫукпШ спасибо, хорошая книга.
                Попробовал GetLastError

                Прикреплённая картинка

                Прикреплённая картинка

                По MSDN ошибка № 1813 что это может быть ?

                Я так подозреваю, что без использования ресурсов, все упирается в отсутствие так называемого шаблона диалога. С помощью шаблона в предыдущей теме получилось создать диалоговое окно. Но оно очень ущербное. А в функции CreateWindowEx нет шаблона.

                Добавлено 29.10.15, 15:56
                PS Почитаю Petzold-а, может что и прояснится.

                Сообщение отредактировано: Designer — 29.10.15, 15:57


                Славян



                Сообщ.
                #8

                ,
                29.10.15, 16:05

                  Скорее всего, не та ошибка, что вы привели, а эта:

                  Цитата winError.H

                  ExpandedWrap disabled

                    //

                    // MessageId: ERROR_RESOURCE_TYPE_NOT_FOUND

                    //

                    // MessageText:

                    //

                    // The specified resource type cannot be found in the image file.

                    //

                    #define ERROR_RESOURCE_TYPE_NOT_FOUND    1813L

                  Wizard

                  B.V.



                  Сообщ.
                  #9

                  ,
                  29.10.15, 16:12

                    Сейчас обратил внимание, что у автора AboutDlgProc для диалогового окна, а не для CreateWindow, требующей вызова DefWindowProc.


                    Designer



                    Сообщ.
                    #10

                    ,
                    29.10.15, 16:32

                      B.V. Из приведенных мной фрагментов может не все понятно. Но у меня есть две функции обработки сообщений
                      1) для

                      ExpandedWrap disabled

                        int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

                        w.lpfnWndProc = WndProc;

                      ExpandedWrap disabled

                        LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)

                        return DefWindowProc(hwnd, message, wparam, lparam);

                      2) для

                      ExpandedWrap disabled

                        HWND About::CreateDlg(HWND hwnd, HINSTANCE hinstance)

                        w.lpfnWndProc = AboutDlgProc;

                      ExpandedWrap disabled

                        LRESULT CALLBACK AboutDlgProc(HWND habout, UINT message, WPARAM wparam, LPARAM lparam)

                        // здесь нет DefWindowProc в литературе читал что и не надо.

                      Завтра приведу исходник. (Исходник на работе, интернет дома)

                      Wizard

                      B.V.



                      Сообщ.
                      #11

                      ,
                      29.10.15, 16:48

                        Цитата Designer @ 29.10.15, 16:32

                        // здесь нет DefWindowProc в литературе читал что и не надо.

                        DefWindowProc надо всегда, если окно создается посредством CreateWindow[Ex]


                        Designer



                        Сообщ.
                        #12

                        ,
                        29.10.15, 16:56

                          Ок, завтра попробую.


                          Designer



                          Сообщ.
                          #13

                          ,
                          30.10.15, 14:49

                            Действительно, DefWindowProc помогло, диалог отображается.

                            правда, диалог ни капли не модальный несмортря на стиль DS_MODALFRAME;
                            сделал родительскому окну EnableWindow(hwnd, FALSE);
                            стал диалог модальный все как и надо, но теперь другая беда — как родителя опять сделать Enable ? когда закрываем диалог;
                            напрашивается послать SendMessage родителю

                            ExpandedWrap disabled

                              LRESULT CALLBACK AboutDlgProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)

                              {

                                  HWND hparent = GetParent(hwnd);

                                  switch (message)

                                  {

                                  case WM_INITDIALOG:

                                      return 0;

                                  case WM_COMMAND:

                                      switch (LOWORD(wparam))

                                      {

                                      case IDOK:

                                      case IDCANCEL:

                                          EndDialog(hwnd, TRUE);

                                          //EnableWindow(hparent, TRUE); // <- эти 2 строки не помогли

                                          //SetFocus(hparent);

                                          //SendMessage(hparent, WM_COMMAND, LOWORD(IDC_ABOUT_CANCEL),  0); // <- тогда решил послать сообщение родителю

                                          return 0;

                                      }

                                  }

                                  return DefWindowProc(hwnd, message, wparam, lparam);

                              }

                              LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)

                              {

                                  switch (message)

                                  {

                                  case WM_CREATE:

                                      form.CreateGeneralMenu(hwnd);

                                      htoolbar = form.CreateToolbar(hwnd, hinst);

                                      hpicturebox = form.CreatePictureBox(hwnd, hinst);

                                      about.CreateDlg(hinst);

                                  case WM_SIZE:

                                      form.Resize(hwnd, htoolbar, hpicturebox);

                                      return 0;

                                  case WM_COMMAND:

                                      switch (LOWORD(wparam))

                                      {

                                      case IDM_EXIT:

                                          SendMessage(hwnd, WM_CLOSE, NULL, NULL);

                                          break;

                                      case IDM_OPTIONS:

                                          break;

                                      case IDM_ABOUT:

                                      case IDM_START:

                                          habout = about.ShowDlg(hwnd, hinst);

                                          break;

                                      //case IDC_ABOUT_CANCEL:          // <- родитель получает сообщение и должен стать Enable

                                      //  EnableWindow(hwnd, TRUE);

                                      //  SetFocus(hwnd);

                                      //  break;

                                      }

                                      return 0;

                                  case WM_ERASEBKGND:

                                      return 0;

                                  case WM_DESTROY:

                                      PostQuitMessage(0);

                                      return 0;

                                  }

                                  return DefWindowProc(hwnd, message, wparam, lparam);

                              }


                            Прикреплённый файлПрикреплённый файлsource.rar (21,22 Кбайт, скачиваний: 79)


                            Прикреплённый файлПрикреплённый файлrelease.rar (97,51 Кбайт, скачиваний: 75)

                            Варианты моих действий (наверное неправильных) я закоментировал, а как сделать модальный диалог правильно?

                            Wizard

                            B.V.



                            Сообщ.
                            #14

                            ,
                            30.10.15, 15:53

                              Цитата Designer @ 30.10.15, 14:49

                              правда, диалог ни капли не модальный несмортря на стиль DS_MODALFRAME;

                              Диалоговые стили не поддерживаются функциями CreateWindow[Ex]

                              Цитата Designer @ 30.10.15, 14:49

                              а как сделать модальный диалог правильно?

                              Не изобретая велосипед, воспользоваться функциями DialogBox[Indirect/Param]

                              Цитата Designer @ 30.10.15, 14:49

                              EndDialog(hwnd, TRUE);

                              Это диалоговая функция.
                              Оконные функции Windows завершаются вызовом DestroyWindow.


                              reinterpret_alexey



                              Сообщ.
                              #15

                              ,
                              30.10.15, 15:59

                                Full Member

                                ***

                                Рейтинг (т): 13

                                Made my day :D

                                user posted image

                                Сообщение отредактировано: reinterpret_alexey — 30.10.15, 16:00


                                ЫукпШ



                                Сообщ.
                                #16

                                ,
                                30.10.15, 17:00

                                  Цитата Designer @ 30.10.15, 14:49

                                  сделал родительскому окну EnableWindow(hwnd, FALSE);
                                  стал диалог модальный все как и надо, но теперь другая беда — как родителя опять сделать Enable ?

                                  ExpandedWrap disabled

                                    EnableWindow(hwnd, TRUE);


                                  Designer



                                  Сообщ.
                                  #17

                                  ,
                                  30.10.15, 17:15

                                    Цитата

                                    EnableWindow(hwnd, TRUE)

                                    так это я понял, а куда это поставить? В процедуру обработки сообщений от AboutDlgProc() не помогло, а если в процедуру обработки сообщений родителя WndProc(), то не знаю как его там вызвать. В коде я закоментировал мои пробы.


                                    ЫукпШ



                                    Сообщ.
                                    #18

                                    ,
                                    30.10.15, 18:04

                                      Цитата Designer @ 30.10.15, 17:15

                                      так это я понял, а куда это поставить?

                                      В сообщение WM_CLOSE диалога.
                                      Именно так я и делаю.
                                      Вот кусочек:

                                      ExpandedWrap disabled

                                        void WINAPI PMDLG::enableParent(void)

                                        {

                                         Hide();

                                         if(hwndMain) ::EnableWindow(hwndMain,TRUE);

                                         ::EnableWindow     (hwndParent,TRUE);

                                         ::SetFocus         (hwndParent);

                                         ::BringWindowToTop (hwndParent);

                                        }

                                      «EndDialog» совершенно не нужен и очень вреден.

                                      Wizard

                                      B.V.



                                      Сообщ.
                                      #19

                                      ,
                                      30.10.15, 18:09

                                        ЫукпШ, твой подход не является решением проблемы автора. Давать неправильное решение хуже, чем не давать никакого


                                        ЫукпШ



                                        Сообщ.
                                        #20

                                        ,
                                        30.10.15, 18:20

                                          Цитата B.V. @ 30.10.15, 18:09

                                          ЫукпШ, твой подход не является решением проблемы автора. Давать неправильное решение хуже, чем не давать никакого

                                          Откуда ты знаешь, какие проблемы автора и как лучше их решать ?
                                          Я отвечаю на его конкретный вопрос и решение по этому поводу буду принимать сам.

                                          Wizard

                                          B.V.



                                          Сообщ.
                                          #21

                                          ,
                                          30.10.15, 22:03

                                            Цитата ЫукпШ @ 30.10.15, 18:20

                                            Откуда ты знаешь, какие проблемы автора и как лучше их решать ?

                                            У меня просто с памятью немного получше: Как создать модальное диалоговое окно (сообщение #3631052)

                                            Цитата ЫукпШ @ 30.10.15, 18:20

                                            Я отвечаю на его конкретный вопрос и решение по этому поводу буду принимать сам.

                                            А если он спросит, как засунуть пальцы в розетку, ты ему инструкцию по разборке розетки предложишь?


                                            Designer



                                            Сообщ.
                                            #22

                                            ,
                                            31.10.15, 20:41

                                              Нет, нет, уважаемые все нормально, вы мне оба очень помогли
                                              B.V.

                                              ExpandedWrap disabled

                                                DefWindowProc

                                                DestroyWindow

                                              ЫукпШ

                                              ExpandedWrap disabled

                                                WM_CLOSE

                                                 ::EnableWindow     (hwndParent,TRUE);

                                                 ::SetFocus         (hwndParent);

                                                 ::BringWindowToTop (hwndParent);

                                              В своей программе я, естественно, все приспособил под свои нужды. Иногда, даже намек в сторону правильного решения здорово помогает.
                                              Итог : Стало понятно, что диалоговое окно без ресурсов можно создавать двумя способами.
                                              1) с помощью шаблона диалога.
                                              2) с помощью функции CreateWindow[Ex]

                                              Мои ошибки:
                                              1) По незнанию, я все время пытался «смешать» эти два способа.
                                              2) Выяснилась одна неприятная особенность Visual Studio (может это только у меня) : Студийное окно мое maximize все время лезет поверх приложения. Поэтому в самостоятельной попытке найти решение методом перебора вариантов куда поставить нужные функции я пропустил верное решение. Предполагал, что если главное окно приложения станет активным, после закрытия диалога, то окно будет на экране активное развернуто как в любом приложении. А оно висело все время свернутое. При верном рабочем варианте я решил, что раз главное окно сворачивается при закрытии диалога, то значит оно не стало EnableWindow / SetFocus / BringWindowToTop. На самом деле оно стало EnableWindow / SetFocus, а BringWindowToTop перекрыла студия. Если запускать приложение без студии — все нормально.

                                              Тут вина скорее моя, что не точно сформулировал вопрос. Но точно формулировать вопрос, порой возможно только если знаешь на него ответ.

                                              Сообщение отредактировано: Designer — 31.10.15, 20:41

                                              Wizard

                                              B.V.



                                              Сообщ.
                                              #23

                                              ,
                                              01.11.15, 15:38

                                                Цитата Designer @ 31.10.15, 20:41

                                                Стало понятно, что диалоговое окно без ресурсов можно создавать двумя способами.

                                                Неверно. Диалоговым окно, созданное посредством CreateWindow[Ex] не является, если опираться на терминологию Windows. Диалоговые окна — это не только модальность, у них есть целый ряд собственных особенностей: https://msdn.microsoft.com/en-us/library/wi…p/ms644995.aspx. Диалоговые окна следует рассматривать как более высокоуровневую надстройку над CreateWindow[Ex], а не как аналог. Повторить функциональность диалоговых окон нативными функциями, конечно, можно, но тут возникает закономерный вопрос — а зачем?

                                                Guru

                                                ElcnU



                                                Сообщ.
                                                #24

                                                ,
                                                04.11.15, 15:40

                                                  Цитата B.V. @ 01.11.15, 15:38

                                                  но тут возникает закономерный вопрос — а зачем?

                                                  ну делали ж такое лет так семь назад, было просто интересно :yes:
                                                  а сейчас, наверное, актуальность таких вещей стремиться к нулю :yes-sad:

                                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                                                  0 пользователей:

                                                  • Предыдущая тема
                                                  • C/C++: Системное программирование и WinAPI
                                                  • Следующая тема

                                                  [ Script execution time: 0,1078 ]   [ 20 queries used ]   [ Generated: 9.02.23, 08:42 GMT ]  

                                                  Добавить комментарий