Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как прописать путь к внешнему файлу


Автор: Dmitrije 7.11.2005, 10:50
Загружаю флэшину в окно mfc.
путь прописываю следующий:
с/....
Как прописать к ней относительный путь(чтобы не было имени диска в пути)?

Автор: The Thing 7.11.2005, 11:22
Просто пиши относительный путь...
И запускай exe файл...
(возможно ты так делал при отладке, но ничего не получилось... при отладке файл находится в папке debug, файл запускается относительно папки проекта... ".\..\debug" )

Автор: Dmitrije 7.11.2005, 12:05
Нет,кладу флэшину в папку debug и просто приписываю ее имя-не работает.
Флэшина не подгружается

Автор: nikf 7.11.2005, 14:21
если влом и относительный путь писать тада не в дебуг надо класть, а а в папку проекта - это начальная директория при запуске в vc

Автор: Dmitrije 7.11.2005, 14:34
я так и делаю-не работает)

Автор: threef 7.11.2005, 15:05
"debug\\name".
Найди полный путь через CFindFile или CFileDialog, запомни и используй. Не забывай вместо \ нужно две \\

Автор: Dmitrije 7.11.2005, 17:20
Не,не работает все равно..
Не пойму,почему такое может быть..
Флэшина и экзешник в одной директории лежат..

Автор: nikf 7.11.2005, 19:12
Цитата(threef @ 7.11.2005, 15:05)
Найди полный путь

Цитата(Dmitrije @ 7.11.2005, 17:20)
Не,не работает все равно..
а в самом начале с использованием полного пути почему-то
работало. smile Либо народ дурак, либо не народ..

Автор: Dmitrije 8.11.2005, 10:06
Цитата(nikf @ 7.11.2005, 19:12)
Цитата(threef @ 7.11.2005, 15:05)
Найди полный путь

Цитата(Dmitrije @ 7.11.2005, 17:20)
Не,не работает все равно..
а в самом начале с использованием полного пути почему-то
работало. smile Либо народ дурак, либо не народ..

Когда полный путь прописываешь-работает.
Но нам нужно все это дело на диск записать,поэтому этот вариант не подходит..
Есть маза,что это глюк сей,т.к. в учебнике написано,что относительный путь должен работать.

Автор: nikf 8.11.2005, 12:05
Цитата(Dmitrije @ 8.11.2005, 10:06)

Когда полный путь прописываешь-работает.
значит

Цитата(threef @ 7.11.2005, 15:05)
Найди полный путь
и проверь его в отладчике - чего он тебе находит

Код

    char buf[1000];
    ::GetModuleFileName(theApp.m_hInstance,buf,1000);
    int i=strlen(buf)-1;
    while(i>-1)
    {
        if(buf[i]=='\\')
        {
            buf[i+1]='\0';
            strcat(buf,"flash_file_name");
            MessageBox(NULL,buf,"Оно?",MB_OK);
            break;
        }
        i--;
    }



Автор: Neitron 8.11.2005, 14:09
Блин, ты хоть покажи как ты делаешь!

Автор: Dmitrije 8.11.2005, 14:56
http://www.bytescout.com/display_flash_in_visualc.html
Типа,так,только путь прописываю без c://...
Саму флэшину кладу в папку с экзешником

Автор: Dmitrije 8.11.2005, 18:12
Никто не знает, почему так может быть?
А то у меня срок, презентацию надо на запись отдавать..
В учебнике пишут,что внешние файлы в си без проблем загружать можно..В чем же здесь дело..

Автор: Dmitrije 9.11.2005, 10:10
char str[255];
HINSTANCE hInstance; // хэндл приложения
GetModuleFileName(hInstance,str,255);
for (int i=strlen(str);str[i]!='\\';i--);
str[i]=0;
strcat(str,"\\present.swf");

m_FlashPlayer.SetMovie(str);

____________________
Пытаюсь определить директорию запуска программы,но не работает..
Что здесь не так?

Автор: nikf 9.11.2005, 10:47
Код

char str[512];//255 по нынешним виндам маловато будет уж пиши 512
HINSTANCE hInstance; // хэндл приложения - так а присваивать ему значение этого самого хендла наверно всетаки нужно ..
GetModuleFileName(hInstance,str,512); 
for (int i=strlen(str);str[i]!='\\';i--);//не i=strlen(str) а i=strlen(str)-1
str[i]=0;
strcat(str,"\\present.swf");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)