Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DirectX SDK C# (LoaderLock was detected), что делать с етой ошибкой 
V
    Опции темы
LEVON
Дата 8.4.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 15.6.2006

Репутация: нет
Всего: нет



Всем привет!!

Надеюсь вы в мне поможете со следующим!!

Начал писать дипломный проект на С# з использованием 3д графики, а в частности с использованием DirectX.

Пишу на VS 2005. Поставил DirectX Software Development Kit (Version: 9.22.1284).

залил пример жаркова, который должен вывести пустую форму, без объектов, но просто инициирует графику. но выскакивает ошибка вроде


DLL 'C:\WINDOWS\assembly\GAC\Microsoft.DirectX\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.dll' is attempting managed execution inside OS Loader lock. Do not attempt to run managed code inside a DllMain or image initialization function since doing so can cause the application to hang.


user posted image


код С# (Form1.cs)
Код


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace DirectX_n1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            using(Form1 myForm1 = new Form1())
            {
                if(!myForm1.InitializeDirectX())
                {
                    MessageBox.Show("Pomulka inicializacii DirectX");
                    return;
                }
                myForm1.Show();
                while(myForm1.Created)
                {
                    myForm1.myRendering();
                    Application.DoEvents();
                }
            }
        }
        
        private void button3_Click(object sender, EventArgs e)
        {
            Close();
        }

        Device myDevice = null;
        public bool InitializeDirectX()
        {
            try
            {
                PresentParameters myPP = new PresentParameters();
                myPP.Windowed = true;
                myPP.SwapEffect = SwapEffect.Discard;
                myDevice = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, myPP);
                return true;
            }
            catch(DirectXException)
            {
                return false;
            }
        }

        public void myRendering()
        {
            if (myDevice == null) return;
            myDevice.Clear(ClearFlags.Target, System.Drawing.Color.White, 1.0f, 0);
            myDevice.BeginScene();
            myDevice.EndScene();
            myDevice.Present();
        }
    }
}



Код С# (Program.cs)
Код


using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace DirectX_n1
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            /*Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());*/
            using (Form1 myForm1 = new Form1())
            {
                if (!myForm1.InitializeDirectX())
                {
                    MessageBox.Show("Pomulka inicializacii DirectX");
                    return;
                }
                myForm1.Show();
                while (myForm1.Created)
                {
                    myForm1.myRendering();
                    Application.DoEvents();
                }
            }
        }
    }
}



Подскажите пожалуйста, мож чето не то поставил, или мож чото кроме установки надо ещо и вручную в шарпе чото прописать. 
PM MAIL   Вверх
vponomarov
Дата 8.4.2008, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



LEVON, в режиме дэбага такая ошибка вылетает?
если да, то это нормально.
в Visual Studio отключается так: меню Debug\Exceptions\Managed Debug Assistants\Loader lock снимаешь галочку с Thrown


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
LEVON
Дата 8.4.2008, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 15.6.2006

Репутация: нет
Всего: нет



Большое спасибо vponomarov   smile  smile . Такие мелкие ошибки наверное будут еще не раз меня мучить  smile , так как програмировал до єтого под веб.

П. С. Думаю у меня еще много будет похожих вопросов. мож скинет кто нить свою аську в приват или чени такое. что бы я мог задавать вопросы (ну я имею ввиду мелкие, которые не нуждаються обсуждения на форуме). Буду сильно благодарен  smile 


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.