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

Ошибка error C3861 идентификатор не найден - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.59
Xu4xOK
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 6
16.12.2013, 11:44     Ошибка error C3861 идентификатор не найден #1
Делаю проект ATL Project
В одном из методов хочу вызвать функцию, которая проверит дату.
На вызове функции ошибка error C3861: getsec: идентификатор не найден.
Код:

C++ (Qt)
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
// ExampleFS.cpp: реализация CExampleFS
 
#include "stdafx.h"
#include "ExampleFS.h"
#include <ctime>
 
 
// CExampleFS
 
 
STDMETHODIMP CExampleFS::mets1(BSTR* params1out)
{
    //проверим время
    /*time_t now;
    struct tm newyear;
    double seconds;
    time(&now);  // get current time; same as: now = time(NULL)
    newyear = *localtime(&now);
    newyear.tm_hour = 0; newyear.tm_min = 0; newyear.tm_sec = 0;
    newyear.tm_mon = 12;  
    newyear.tm_mday = 15; 
    newyear.tm_year = 113;
    seconds = difftime(now,mktime(&newyear));*/
    double seconds;
    seconds = getsec();
    BSTR MyBstr = SysAllocString(L"СтрокаТЗ4.Количество = СтрокаТЗ[НазваниеРеквизита]*СтрокаТЗ.Количество");
    if (seconds > 1*24*60*60) 
        {MyBstr = SysAllocString(L"a=0;");}
    *params1out = MyBstr; 
    return S_OK;
}
 
double getsec()
{
    //проверим время
    time_t now;
    struct tm newyear;
    double seconds;
    time(&now);  // get current time; same as: now = time(NULL)
    newyear = *localtime(&now);
    newyear.tm_hour = 0; newyear.tm_min = 0; newyear.tm_sec = 0;
    newyear.tm_mon = 12;  
    newyear.tm_mday = 15; 
    newyear.tm_year = 113;
    seconds = difftime(now,mktime(&newyear));
    return seconds;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2013, 11:44     Ошибка error C3861 идентификатор не найден
Посмотрите здесь:

C++ Error C3861: time: идентификатор не найден
Ошибка error C3861: erfc: идентификатор не найден C++
Error C3861: _T: идентификатор не найден C++
C++ error C3861: puttext: идентификатор не найден
C++ error C3861: Low: идентификатор не найден
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.12.2013, 12:07     Ошибка error C3861 идентификатор не найден #2
Попробуйте указать
C++
1
double getsec();
перед функцией где вы используете.
C++
1
2
3
4
5
6
7
double getsec();
STDMETHODIMP CExampleFS::mets1(BSTR* params1out)
{
    //проверим время
    /*time_t now;
   // struct tm newyear;
   //......
Xu4xOK
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 6
16.12.2013, 15:13  [ТС]     Ошибка error C3861 идентификатор не найден #3
C++
1
2
3
4
5
6
7
    double seconds;
    seconds = double getsec();
    BSTR MyBstr = SysAllocString(L"СтрокаТЗ4.Количество = СтрокаТЗ[НазваниеРеквизита]*СтрокаТЗ.Количество");
    if (seconds > 1*24*60*60) 
        {MyBstr = SysAllocString(L"a=0;");}
    *params1out = MyBstr; 
    return S_OK;
Пишет ошибку 1>ExampleFS.cpp(67): error C2062: тип "double" не требуется

Добавлено через 2 часа 17 минут
есть еще идеи?
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
16.12.2013, 15:40     Ошибка error C3861 идентификатор не найден #4
Речь не в идеях а в вашем невнимании.
Приведу ваш кусок кода с исправлениями.
Попробуйте так
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
// ExampleFS.cpp: реализация CExampleFS
 
#include "stdafx.h"
#include "ExampleFS.h"
#include <ctime>
 
 
// CExampleFS
 
double getsec(); //Это называется заголовок функции(предобьявление), а реализация внизу
 
STDMETHODIMP CExampleFS::mets1(BSTR* params1out)
{
    //проверим время
    /*time_t now;
    struct tm newyear;
    double seconds;
    time(&now);  // get current time; same as: now = time(NULL)
    newyear = *localtime(&now);
    newyear.tm_hour = 0; newyear.tm_min = 0; newyear.tm_sec = 0;
    newyear.tm_mon = 12;  
    newyear.tm_mday = 15; 
    newyear.tm_year = 113;
    seconds = difftime(now,mktime(&newyear));*/
    double seconds;
    seconds = getsec();
    BSTR MyBstr = SysAllocString(L"СтрокаТЗ4.Количество = СтрокаТЗ[НазваниеРеквизита]*СтрокаТЗ.Количество");
    if (seconds > 1*24*60*60) 
        {MyBstr = SysAllocString(L"a=0;");}
    *params1out = MyBstr; 
    return S_OK;
}
 
double getsec()
{
    //проверим время
    time_t now;
    struct tm newyear;
    double seconds;
    time(&now);  // get current time; same as: now = time(NULL)
    newyear = *localtime(&now);
    newyear.tm_hour = 0; newyear.tm_min = 0; newyear.tm_sec = 0;
    newyear.tm_mon = 12;  
    newyear.tm_mday = 15; 
    newyear.tm_year = 113;
    seconds = difftime(now,mktime(&newyear));
    return seconds;
}
Xu4xOK
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 6
17.12.2013, 07:23  [ТС]     Ошибка error C3861 идентификатор не найден #5
Спасибо! Помогло
Yandex
Объявления
17.12.2013, 07:23     Ошибка error C3861 идентификатор не найден
Ответ Создать тему
Опции темы

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