Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 1
Регистрация: 02.04.2016
Сообщений: 21
1

Function does not take 0 arguments

07.04.2016, 00:28. Просмотров 956. Ответов 3
Метки нет (Все метки)

Доброго времени суток!

Задали написать программу (Найдите объём правильной треугольной призмы, все ребра которой равны a.
Вычислить m21 за шесть операций умножения.) с использованием динамической библиотеки. Программу на C++ пишу первый раз, поэтому не понимаю, как мне кажется, довольно простой ошибки для продвинутых пользователей: function does not take 0 arguments.

В одном Solution находятся два проекта: ПЗ-1 и ConsoleApplication1(сама библиотека). Ошибка выдаётся при выполнении файла main.cpp

Файлы библиотеки:
Header Files:

ConsoleApplication1.hpp

Кликните здесь для просмотра всего текста
#pragma once

#include "ConsoleApplicationApi.hpp"

CONSOLEAPPLICATIONAPI_API int volume (int argc, char * argv[]);
CONSOLEAPPLICATIONAPI_API int degree (int argc, char * argv[]);


ConsoleApplicationApi.hpp

Кликните здесь для просмотра всего текста
#pragma once

#ifdef CONSOLEAPPLICATIONAPI_EXPORTS
#define CONSOLEAPPLICATIONAPI_API __declspec(dllexport)
#else
#define CONSOLEAPPLICATIONAPI_API __declspec(dllimport)
#endif


stdafx.h
Кликните здесь для просмотра всего текста

#pragma once

#include "targetver.h"

#define WIN32_LEAN_AND_MEAN

#include <windows.h>


targetver.h


Кликните здесь для просмотра всего текста
#pragma once

#include <SDKDDKVer.h>


Source Files:

ConsoleApplication1.cpp

Кликните здесь для просмотра всего текста
#include "stdafx.h"
#include "ConsoleApplication1.hpp"


using namespace std;

int volume(int argc, char * argv[])
{
double a, v;

cout << "Введите длину ребра призмы." << endl;

cin >> a;

v = (sqrt(3) / 4)*a*a*a;

cout << "Объём правильной треугольной призмы = " << v << endl;

return 0;
}

int degree(int argc, char * argv[])
{
long int m1, m2, m4, m8, m16, m20, m21;

cout << "Введите целое число m." << endl;

cin >> m1;
m2 = m1*m1;
m4 = m2*m2;
m8 = m4*m4;
m16 = m8*m8;
m20 = m4*m16;
m21 = m20*m1;
cout << "Введённое число в степени 21 = " << m21 << endl;
return 0;
}


dllmain.cpp

Кликните здесь для просмотра всего текста
#include "stdafx.h"

BOOL APIENTRY DllMain( HMODULE Module,
DWORD Reason,
LPVOID Reserved
)
{
switch (Reason)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}


stdafx.cpp

Кликните здесь для просмотра всего текста
#include "stdafx.h"


Теперь другой связанный проект:
Header Files:


stdafx.h

Кликните здесь для просмотра всего текста
#pragma once

#include <stdio.h>

#include <locale>

#include <iostream>

#include <cmath>

#include <limits.h>


targetver.h

Кликните здесь для просмотра всего текста
#pragma once

#include <SDKDDKVer.h>


Source Files:
main.cpp (в нём и выдаёт ошибку)

Кликните здесь для просмотра всего текста
#include "stdafx.h"
#include "../ConsoleApplication1/ConsoleApplication1.hpp"

using namespace std;

int main(int argc, char * argv[])
{
setlocale(LC_ALL, "Russian");

volume();

degree();

return 0;
}


stdafx.cpp


Кликните здесь для просмотра всего текста
#include "stdafx.h"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2016, 00:28
Ответы с готовыми решениями:

Too few arguments to function
Доброго времени суток! Возникла проблема при компиляции кода, собственно на скриншотах ниже, никак...

Too few arguments to function. Почему?
Здравствуйте! Есть программа, которая при компиляции вываливается с ошибкой. Нужно эту ошибку...

Ошибка Function does not take 1 arguments
Помогите пожалуйста устранить ошибки: Error 6 error C2660: 'vivod_massiva1' : function does not...

No overloaded function takes 3 arguments
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; #include &quot;conio.h&quot;...

3
С чаем беда...
Эксперт CЭксперт С++
8005 / 3901 / 1076
Регистрация: 18.10.2014
Сообщений: 8,352
07.04.2016, 00:51 2
Цитата Сообщение от pelmeny3751 Посмотреть сообщение
function does not take 0 arguments
Так а что тут "не понимать"?

Функция volume объявлена как

C++
1
int volume (int argc, char * argv[]);
т.е. с двумя параметрами. Вы ее вызываете как

C++
1
volume();
т.е. без единого аргумента.

Так а аргументы кто передавать будет? Пушкин?
0
0 / 0 / 1
Регистрация: 02.04.2016
Сообщений: 21
07.04.2016, 01:15  [ТС] 3
Спасибо. Действительно глупая ошибка. Исправил.
Теперь в том же main.cpp выдаёт:
main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl volume(void)" (__imp_?volume@@YAHXZ)
1>main.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl degree(void)" (__imp_?degree@@YAHXZ)
Как тут быть?
0
С чаем беда...
Эксперт CЭксперт С++
8005 / 3901 / 1076
Регистрация: 18.10.2014
Сообщений: 8,352
07.04.2016, 01:37 4
Цитата Сообщение от pelmeny3751 Посмотреть сообщение
Исправил.
И как же вы ее исправили, позвольте полюбопытствовать?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2016, 01:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

gcc не компилирует: too many arguments to function
Building file: ../main.cpp Invoking: GCC C++ Compiler g++ -O0 -g3 -Wall -c -fmessage-length=0...

Почему не компилируется? (too few arguments to function)
Здравствуйте у меня не компилируеться программа (dev сборщик ) пишет 7 C:\Documents and...

too few arguments to function. почему так происходит?
всем привет, помогите разобраться с ошибкой #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

Пишет function does not take arguments при любых аргументах
Подскажите почему не вызываеться функция, ни g = riadki::kol(); ни j = riadki::revers(char a,int...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.