Ламерский вопрос
От: gramer  
Дата: 23.09.01 14:34
Оценка:
Извините за сабж, но почему может не выполняться данный код:

#include "windows.h"
#include "resource.h"
#include "commctrl.h"
#include "stdio.h"

OPENFILENAME ofn;
char szFile[260];

memset(&ofn, 0, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwndOwner; //hwnd окна
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

GetOpenFileName(&ofn);

VC6.0 Win98
Заранее спасибо
Re: Ламерский вопрос
От: Unknown007  
Дата: 23.09.01 14:44
Оценка:
Здравствуйте gramer, вы писали:

G>Извините за сабж, но почему может не выполняться данный код:


G>#include "windows.h"

G>#include "resource.h"
G>#include "commctrl.h"
G>#include "stdio.h"

G> OPENFILENAME ofn;

G> char szFile[260];
G>
G> memset(&ofn, 0, sizeof(OPENFILENAME));
G> ofn.lStructSize = sizeof(ofn);
G> ofn.hwndOwner = hwndOwner; //hwnd окна
G> ofn.lpstrFile = szFile;
G> ofn.nMaxFile = sizeof(szFile);
G> ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
G> ofn.nFilterIndex = 1;
G> ofn.lpstrFileTitle = NULL;
G> ofn.nMaxFileTitle = 0;
G> ofn.lpstrInitialDir = NULL;
G> ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

G> GetOpenFileName(&ofn);


G>VC6.0 Win98

G>Заранее спасибо

Может потому, что вместо :
#include "windows.h"
#include "resource.h"
#include "commctrl.h"
#include "stdio.h"

Надо:
#include <windows.h>
#include <resource.h>
#include <commctrl.h>
#include <stdio.h>

Они (файлы) ведб лежат в папке include компилятора, а не в папке программы...
Re[2]: Ламерский вопрос
От: gramer  
Дата: 23.09.01 15:12
Оценка:
Здравствуйте Unknown007, вы писали:

U>Может потому, что вместо :
#include "windows.h"
U>#include "resource.h"
U>#include "commctrl.h"
U>#include "stdio.h"

U>Надо:
#include <windows.h>
U>#include <resource.h>
U>#include <commctrl.h>
U>#include <stdio.h>

U>Они (файлы) ведб лежат в папке include компилятора, а не в папке программы...

Спасибо за совет, не знал, что эти два примера кода различаются, но, сожалению, в данном случае не помогло.
Извините, я не сказал, но проблема не в ошибках при компиляции(все компилируется).
Проблема в том, что не создается диалог, функция GetOpenFileName(&ofn) возвращает False :(
Re: Ламерский вопрос
От: Alex Fedotov США  
Дата: 23.09.01 16:21
Оценка:
Здравствуйте gramer, вы писали:

G>Извините за сабж, но почему может не выполняться данный код:


G>#include "windows.h"

G>#include "resource.h"
G>#include "commctrl.h"
G>#include "stdio.h"

G> OPENFILENAME ofn;

G> char szFile[260];
G>
G> memset(&ofn, 0, sizeof(OPENFILENAME));
G> ofn.lStructSize = sizeof(ofn);
G> ofn.hwndOwner = hwndOwner; //hwnd окна
G> ofn.lpstrFile = szFile;
G> ofn.nMaxFile = sizeof(szFile);
G> ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
G> ofn.nFilterIndex = 1;
G> ofn.lpstrFileTitle = NULL;
G> ofn.nMaxFileTitle = 0;
G> ofn.lpstrInitialDir = NULL;
G> ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

szFile[0] = 0;

G> GetOpenFileName(&ofn);
-- Alex Fedotov
Re[2]: Ламерский вопрос
От: gramer  
Дата: 23.09.01 16:37
Оценка:
Здравствуйте Alex Fedotov, вы писали:


AF> szFile[0] = 0;



Да! Спасибо большое, это работает! :)))
Re[2]: Ламерский вопрос
От: The Lex Украина  
Дата: 24.09.01 15:54
Оценка:
Здравствуйте Unknown007, вы писали:

U>Может потому, что вместо :

U>#include "windows.h"
U>#include "resource.h"
U>#include "commctrl.h"
U>#include "stdio.h"

U>Надо:
#include <windows.h>
U>#include <resource.h>
U>#include <commctrl.h>
U>#include <stdio.h>

U>Они (файлы) ведб лежат в папке include компилятора, а не в папке программы...

Кстати, это будет нормально воспринято компилятором VC++, а вот наоборот — добраться до файлов в локальной папке указав <...> — это приводит к ошибке при компиляции.

Вот так вот...
Голь на выдумку хитра, однако...
Re[3]: Ламерский вопрос
От: gramer  
Дата: 24.09.01 16:01
Оценка:
Здравствуйте The Lex, вы писали:

TL>Кстати, это будет нормально воспринято компилятором VC++, а вот наоборот — добраться до файлов в локальной папке указав <...> — это приводит к ошибке при компиляции.


TL>Вот так вот...


Не знаю, лично у меня компилировались обе версии...
Re[3]: Ламерский вопрос
От: gramer  
Дата: 24.09.01 16:01
Оценка:
Здравствуйте The Lex, вы писали:

TL>Кстати, это будет нормально воспринято компилятором VC++, а вот наоборот — добраться до файлов в локальной папке указав <...> — это приводит к ошибке при компиляции.


TL>Вот так вот...


Не знаю, лично у меня компилировались обе версии...
Re[3]: Ламерский вопрос
От: YuriS Германия www.yuris.de
Дата: 27.09.01 18:32
Оценка:
Здравствуйте The Lex, вы писали:

TL>Здравствуйте Unknown007, вы писали:


U>>Может потому, что вместо :

#include "windows.h"
#include "resource.h"
#include "commctrl.h"
#include "stdio.h"

U>>Надо:
#include <windows.h>
#include <resource.h>
#include <commctrl.h>
#include <stdio.h>

U>>Они (файлы) ведб лежат в папке include компилятора, а не в папке программы...

TL>Кстати, это будет нормально воспринято компилятором VC++, а вот наоборот — добраться до файлов в локальной папке указав <...> — это приводит к ошибке при компиляции.


Разнится в том, что когда указаны кавычки, то компилятор ищет заголовочный файл сначала в рабочей директории, и если его там нет, то в библиотечной, а кода <>, то сразу в библиотечной.

TL>Вот так вот...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.