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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Windows приложения в Visual Studio 2005 
:(
    Опции темы
merfi
  Дата 29.5.2008, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Помогите совсем запутался !!!!
ПО: Visual Studio 2005
Язык С++ (именно С++)
Суть проблемы :
Код содрал в Инете . Программка показывает все процессы в Win и их PID .
В Visual Studio выбрал VC++ - Win32 Console Application. Все опции по умолчению . Добавил следующий код

Код

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <psapi.h>

void PrintProcessNameAndID( DWORD processID )
{
    TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");

    // Get a handle to the process.

    HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
                                   PROCESS_VM_READ,
                                   FALSE, processID );

    // Get the process name.

    if (NULL != hProcess )
    {
        HMODULE hMod;
        DWORD cbNeeded;

        if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), 
             &cbNeeded) )
        {
            GetModuleBaseName( hProcess, hMod, szProcessName, 
                               sizeof(szProcessName)/sizeof(TCHAR) );
        }
    }

    // Print the process name and identifier.

    _tprintf( TEXT("%s  (PID: %u)\n"), szProcessName, processID );

    CloseHandle( hProcess );
}

void main( )
{
    // Get the list of process identifiers.

    DWORD aProcesses[1024], cbNeeded, cProcesses;
    unsigned int i;

    if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
        return;

    // Calculate how many process identifiers were returned.

    cProcesses = cbNeeded / sizeof(DWORD);

    // Print the name and process identifier for each process.

 for ( i = 0; i < cProcesses; i++ )
        PrintProcessNameAndID( aProcesses[i] );
}

В консольном варианте все работало просто прекрасно

Затем решил создать визуальное приложение 
Тип проекта Visual C++ - Windows Forms Application
Все нарисовал и добавил тот же самы код 
И тут начались все проблемы 

1 Пишет что тип DWORD не известен
пытался вписать using namespace Microsoft::Win32. Не помогло 
2 Проект называется DeletePid . Мастер создал файлик DeletePid.cpp В нем ксть строчка 
using namaspace DeletePid. Пока не закоментировал писала ошибку 

Вобщем подскажите как правильно размещать свои  функции (вернее даже где размещать )

Проект занимает 5МВ . Если будет не лень посмотрель  могу скинуть на мыло



Это сообщение отредактировал(а) Earnest - 30.5.2008, 11:39
--------------------
Стремитесь к совершенству! Неуклонно идите вперед! Но помните, что Ковчег сделал любитель а Титаник построили профессионалы
PM MAIL   Вверх
Andrey44
Дата 30.5.2008, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

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



merfi,  smile ну во-первых помоему ты не в том разделе вопрос задаешь,
а во-вторых используй тэг КОД, ну не понятно-же ничего smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Walker
Дата 30.5.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



merfi, всё гоняют с этим вопросом. smile  Из диеза в плюсы, из плюсов в диез. А всё потому, что ты в проекте смешал в кучу две среды исполнения. Давай прояснять.
Windows Forms - интерфейсная графическая оболочка, писанная под .net и обязана запускаться только под управлением CLR. .Net имеет собственный взгляд на систему типов, которому чужды представления о всяких WinAPI'шных DWORD.
Отсюда простор действий:
1) ищем .net-овские типы, реализующие нужный функционал и переписываем код.
2) создаём dll из функций консольного приложения и используем её в соответствии с PInvoke.
3) выбираем другую графическую оболочку. (Не WPF! smile )

Удачи!



--------------------
"От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..."
PM MAIL   Вверх
jonie
Дата 30.5.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



4) делаем COM компонент, и используем его через proxy сборку


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
merfi
Дата 2.6.2008, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо Будем разбираться со средами и искать нужные типы в .net 
--------------------
Стремитесь к совершенству! Неуклонно идите вперед! Но помните, что Ковчег сделал любитель а Титаник построили профессионалы
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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