Форум программистов, компьютерный форум CyberForum.ru

ms vs 2010 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
21.05.2011, 04:54     ms vs 2010 #1
компилирую в vs ultimate 2010
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include "stdafx.h"
#include "windows.h"
#include "stdio.h"
#include "incl.h"
 
void nullstruc(statep &struc1);
void rcoin(statep &struc1);
void crpost(statep &struc1);
void changename(statep &struc1);
 
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    statep ststatep1 =
    {
        "a",
        "a",
        1,
        1,
        0,
        2,
        0,
        0,
        "z",
        0,
    };
 
    
    rcoin(ststatep1);
    nullstruc(ststatep1);
    changename(ststatep1);
 
    crpost(ststatep1);
    crpost(ststatep1);
    crpost(ststatep1);
    crpost(ststatep1);
    changename(ststatep1);
    ststatep1.stam = 0;
 
    crpost(ststatep1);
    crpost(ststatep1);
    crpost(ststatep1);
    crpost(ststatep1);
    crpost(ststatep1);
    crpost(ststatep1);
    crpost(ststatep1);
    crpost(ststatep1);
    HINSTANCE hdll1 = LoadLibraryA("dll4.dll");
    FARPROC pdllfunc1 = GetProcAddress(hdll1, "dllfunc1");
    (*pdllfunc1);
    FreeLibrary(hdll1);
 
    return 0;
}
    void nulstruc(statep &struc1)
{
    struc1.nname = 0;
    struc1.stam = 0;
}
 
    void changename(statep &struc1)
{
 
}
 
 
    void rcoin(statep &struc1)
{
 
}
 
    void crpost(statep &struc1)
{
    DWORD fcount;
 
    char * name = struc1.name;
    HANDLE hfile1 = CreateFileA(struc1.name, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL);
    if(struc1.stam==0)
        WriteFile(hfile1, buf, i , &fcount, NULL);
    else
    {
        SetFilePointer(hfile1, 70*struc1.stam, NULL, FILE_BEGIN);
        WriteFile(hfile1, buf, i, &fcount, NULL);
    }
    struc1.stam++;
 
    //sprintf(buf1, "%d", fcount);
    //MessageBoxA(NULL, buf1, "information", MB_OK);
    CloseHandle(hfile1);
}
это incl.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    struct test1
{
    char e[6];
    char s[1];
    char d[7];
};
 
    struct statep
{ 
    char date[11];
    char cur[8];
    double o;
    double c;
    double r;
    int state;
    int coin;
    int stam;
    char name[15];
    int nname;
};
1>loaddll.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl nullstruc(struct statep &)" (?nullstruc@@YAXAAUstatep@@@Z) в функции _WinMain@16
1>C:\Documents and Settings\er\Мои документы\Visual Studio 2010\Projects\loaddll\Debug\loaddll.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
1>

в vs express 2008 все работало
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 04:54     ms vs 2010
Посмотрите здесь:

С++ 2010 C++
не работает VS 2010 C++
vs--2010 C++
C++ Visual C++ 2010
32 символа VS 2010 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Danvern
 Аватар для Danvern
40 / 39 / 3
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
21.05.2011, 05:32     ms vs 2010 #2
nullstruc() вот эта функция наверно определена где то в другом месте попробуй назвать по другому
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
21.05.2011, 07:23  [ТС]     ms vs 2010 #3
ты прав l забыл
но теперь пишет про манифест
1>mt.exe : general error c101008a: Failed to save the updated manifest to the file "Debug\loaddll.exe.embed.manifest". 0@0<5B@ 7040= =525@=>.
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
21.05.2011, 10:44     ms vs 2010 #4
У вас реализация функций после мэйна. Поставьте перед ним, и чтобы на всякий случай избавится от косяков сделайте ребилд солюшена.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
21.05.2011, 11:14     ms vs 2010 #5
Predator_2004, И что что реализация после main? Наверху ведь прототип объявлен
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
21.05.2011, 11:43     ms vs 2010 #6
Если я правильно помню работу компилятора, то на момент прохода по функции мэйн, встретив обращение к одной из этих функций, он не будет иметь представление об их реализации, т.к. они стоят за мэйном. Он не сможет адекватно сформировать код главной подпрограммы.

Добавлено через 2 минуты
Компилятор встретил вызов функции, ему нужен ее код. До самого кода он еще не дошел, следовательно он не знает есть ли он вообще, остановка, вывод сообщения об ошибке.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
21.05.2011, 11:46     ms vs 2010 #7
Predator_2004, Слишком плохо вы думаете о компиляторе)
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
21.05.2011, 11:47     ms vs 2010 #8
Реализация функций после main() - это по стандарту разрешено.
А вот эта фигня:
C++
1
#include "stdafx.h"
это microsoft specific.
Поэтому в Студии пересоздайте проект, выбрав "пустой" проект.
И включите туда только СВОИ файлы.
HighPredator
 Аватар для HighPredator
5352 / 1735 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
21.05.2011, 12:00     ms vs 2010 #9
Мда, был неправ.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2011, 21:28     ms vs 2010
Еще ссылки по теме:

DLL 32 и 64 в C++ 2010 C++
Потоки в VS 2010 C++
Студия 2010 C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
21.05.2011, 21:28  [ТС]     ms vs 2010 #10
пустой проект заработал (ms vs ultimate 2010 какой-то кошмар).
только exe-шник немогу найти говорит что нет такого файла.
Yandex
Объявления
21.05.2011, 21:28     ms vs 2010
Ответ Создать тему
Опции темы

Текущее время: 02:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru