программа не запускается на нужном компьютере
Написал программу на MSVS 2008.
Она использует библиотеки wsock32.lib iphlpapi.lib rasapi32.lib их все я добавил в project/settings в раздел Link (и в Debug и в Release). На моем компьютере все работает, но на том компьютере где она должна выполняться система выдает "Приложение не было запущено потому что оно некорректно настроено. Повторная установка может решить проблему".
В чем может быть дело?
Спасибо
ps На нужный комп передаю именно release версию
Написал программу на MSVS 2008.
Она использует библиотеки wsock32.lib iphlpapi.lib rasapi32.lib их все я добавил в project/settings в раздел Link (и в Debug и в Release). На моем компьютере все работает, но на том компьютере где она должна выполняться система выдает "Приложение не было запущено потому что оно некорректно настроено. Повторная установка может решить проблему".
В чем может быть дело?
Спасибо
ps На нужный комп передаю именно release версию
Вы должны поставлять вместе с приложением и соответствующие dll-ки, в противном случае работать не будет...
раньше когда писал из под MSVC++ 6.0 после всех вышеуказанных процедур работало и без dll. Складывалось впечатление что нужные dll-функции экспортировались в ехе-шник
Это после каких таких процедур?
Не следует путать динамические и статические библиотеки, т.к. это разные вещи. Весь код статической библиотеки включается в исполняемый файл на этапе компоновки проекта. В случае использования динамических библиотек dll-ка проецируется на адресное пространство вызывающего процесса, то есть во время выполнения программы (runtime). Вы одиноково в опциях линковщика подключаете lib файл. Для динамических библиотек lib-файл - это так называемая библиотека импорта. Поэтому, если в Вашем приложении используется не системная библиотека, то Вы обязательно должны поставлять её с Вашим приложением и она должна находится либо в каталоге самого приложения, в текущем каталоге или в системном каталоге, либо Вы сами в программе прописываете полный путь к dll'ке...
вот так понятно. Спасибо!
Не помогает.
Рантайм MSVC++ помог. Но устанавливать рантайм MSVC++ на каждый комп нет возможности.
В чем еще может быть проблема?
Вот код если надо
#include "ras.h"
#include <iostream>
#include <conio.h>
int main() {
HRASCONN hrascon=NULL;
RASDIALPARAMS rc[1];
rc[0].dwSize = sizeof(RASDIALPARAMS);
strcpy((char*)rc[0].szEntryName, "Jana");
strcpy((char*)rc[0].szPhoneNumber, "210872");
strcpy((char*)rc[0].szUserName, "asdf");
strcpy((char*)rc[0].szPassword, "fdas");
rc[0].szDomain[0] = '\0';
printf("%s", rc[0].szPassword);
if (RasDial(NULL,NULL,rc,0L,NULL,&hrascon)==0)
{
printf("RasDial Run ");
printf("%d", hrascon);
}
printf("Press key");
getch();
return 0;
}
Только что переписал ее под MSVC++ 6.0 заработало без всяких рантаймов.
Может я неправильно настраиваю MSVS 2008? Помогите настроить
Пользуйся поиском! Например: runtime.
Только что переписал ее под MSVC++ 6.0 заработало без всяких рантаймов.
Запустилось, потому что необходимые библиотеки уже были на машине (в xp, например, их можно найти в windows\system32).
В настройках проекта:
Configuration -> C/C++ -> Code Generation -> Runtime Library
поставьте
Multi-threaded (/MT)