Вниз  C / C++
- 30.07.2012 / 13:51
Bobrosoft
  Пользователь

Bobrosoft 
Сейчас: Offline
и объект, вызывающий метод getNews(), находится вне этого пространства имен и класса?

Изменено Bobrosoft (30.07 / 13:52) (всего 1 раз)
- 30.07.2012 / 14:11
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
Bobrosoft, пофиг. Поработаю с Grabber.Grabber.getNews();
- 30.07.2012 / 14:31
Bobrosoft
  Пользователь

Bobrosoft 
Сейчас: Offline
Ксакеп, подожди. Так у тебя и класс, и пространство имен называются одинаково? Ну тогда конечно, неопределенность возникает. Переименуй что-нибудь
- 30.07.2012 / 16:16
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
Bobrosoft, окей. :gg:
- 1.08.2012 / 16:49
Medbat
  Пользователь

Medbat 
Сейчас: Offline
Всем привет. У меня тут такое дело:
  1. // learncpp.cpp : main project file.
  2.  
  3. #include "stdafx.h"
  4.  
  5. int main()
  6. {
  7.     const int LENGTH = 5;
  8.     setlocale(LC_ALL,"Russian");
  9.     int a = 1, b = 2;
  10.     printf("%d, %d\n",a,b);
  11.     swap(a,b);
  12.     printf("%d, %d\n",a,b);
  13.     char c[LENGTH] = "lol";
  14.     char d[LENGTH] = "stas";
  15.     printf("%s, %s\n",c,d);
  16.     swap(c,d, LENGTH);
  17.     printf("%s, %s\n",c,d);
  18.     _getch();
  19.     return 0;
  20. }
  1. // stdafx.h : include file for standard system include files,
  2. // or project specific include files that are used frequently, but
  3. // are changed infrequently
  4. //
  5.  
  6. #pragma once
  7.  
  8. // TODO: reference additional headers your program requires here
  9.  
  10. #include <stdio.h>
  11. #include <conio.h>
  12. #include <clocale>
  13.  
  14. template <typename any> void swap(any &a, any &b);
  15. template <typename any> void swap(any *a, any *b, int n);
  1. // stdafx.cpp : source file that includes just the standard includes
  2. // learncpp.pch will be the pre-compiled header
  3. // stdafx.obj will contain the pre-compiled type information
  4.  
  5. #include "stdafx.h"
  6.  
  7. template <typename any> void swap(any &a, any &b)
  8. {
  9.     any temp = a;
  10.     a = b;
  11.     b = temp;
  12. }
  13.  
  14. template <typename any> void swap(any *a, any *b, int n)
  15. {
  16.     any temp;
  17.     for (int i=0;i<n;i++)
  18.     {
  19.         temp=a[i];
  20.         a[i]=b[i];
  21.         b[i]=temp;
  22.     }
  23. }
Компилируем... опана!

1>------ Build started: Project: learncpp, Configuration: Debug Win32 ------
1> stdafx.cpp
1> AssemblyInfo.cpp
1> learncpp.cpp
1> Generating Code...
1> .NETFramework,Version=v4.0.AssemblyAttributes.cpp
1>learncpp.obj : error LNK2028: unresolved token (0A00000B) "void __cdecl swap<char>(char *,char *,int)" (??$swap@D@@$$FYAXPAD0H@Z) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>learncpp.obj : error LNK2028: unresolved token (0A00000D) "void __cdecl swap<int>(int &,int &)" (??$swap@H@@$$FYAXAAH0@Z) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>learncpp.obj : error LNK2019: unresolved external symbol "void __cdecl swap<char>(char *,char *,int)" (??$swap@D@@$$FYAXPAD0H@Z) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>learncpp.obj : error LNK2019: unresolved external symbol "void __cdecl swap<int>(int &,int &)" (??$swap@H@@$$FYAXAAH0@Z) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>D:\progs\vcpp\projects\learncpp\Debug\learncpp.exe : fatal error LNK1120: 4 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Если же засунуть всё в один файл, то код делает всё правильно. Почему так? Гуглил, гуглил, не нашёл, в чём проблема. Где-то вроде говорят надо библиотеку подключить какую-то, то ли user32.dll, то ли ещё какую.
- 1.08.2012 / 22:22
Medbat
  Пользователь

Medbat 
Сейчас: Offline
Разобрался. Если кому интересно, то шаблонные функции нельзя компилировать отдельно. Либо в заголовочном файле, либо в самом файле, где они используются.
- 2.08.2012 / 22:10
Хроно
  Пользователь

Хроно 
Сейчас: Offline
Кто-нибудь знает, как сделать скрин средствами DirectX? Я пробовал такой код
  1. #include <d3d9.h>
  2. #include <d3d9caps.h>
  3. #include <d3d9types.h>
  4. void d3dshot()
  5. {
  6.     IDirect3DDevice9* g_pd3dDevice;
  7.     LPDIRECT3DDEVICE9 g_pDirect3DDevice;
  8.     LPDIRECT3DSURFACE9 FrontBuff;
  9.     D3DSURFACE_DESC SurfaceDesc;
  10.     D3DDISPLAYMODE DisplayMode;
  11.     D3DLOCKED_RECT Rect;
  12.  
  13.     g_pDirect3DDevice->GetDisplayMode(D3DADAPTER_DEFAULT, &DisplayMode);
  14.  
  15.     g_pDirect3DDevice->CreateOffscreenPlainSurface(DisplayMode.Width, DisplayMode.Height, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, &FrontBuff, NULL);
  16.     g_pDirect3DDevice->GetFrontBufferData(D3DADAPTER_DEFAULT, FrontBuff);
  17.     D3DXSaveSurfaceToFile( "C://screenshot.bmp", D3DXIFF_BMP, FrontBuff, NULL, NULL);
  18. }
компилятор ругается на то, что не объявлены D3DXSaveSurfaceToFile и D3DXIFF_BMP, у меня такое впечатление, что не подключен какой-то заголовочный файл. Гугление результатов не дает, мб кто подскажет?
- 2.08.2012 / 23:44
Bobrosoft
  Пользователь

Bobrosoft 
Сейчас: Offline
я сегодня решил вспомнить плюсы. После шарпа они мне показались очень нелогичными и тяжелыми, да и в визуал студии проще работать с шарпом, она оформление красивое дает и автоподстановку. Хотя когда-то С++ был для меня роднее С#...
Увидел код Хроно. Понял, что XNA в разы лучше и понятнее директа :-D

Изменено Bobrosoft (2.08 / 23:49) (всего 1 раз)
- 3.08.2012 / 05:43
RGT
  Пользователь

RGT 
Сейчас: Offline
Medbat, так линковщик на то и ругался.
__________________
 don't tread on me
- 11.08.2012 / 10:47
beginner
  Пользователь

beginner 
Сейчас: Offline
Подскажите пожалуйста для чего нужны эти команды...
  1. #ifndef,#define,#endif
???
Наверх  Всего сообщений: 2777
Фильтровать сообщения
Поиск по теме
Файлы топика (111)