获取LNK2005"已在GUI.obj中定义"以获取PAL.h中的函数指针
//GUI.cpp
#include "PAL.h"
//PAL.h
#define PAL_INCLUDE
int (*addPAL)( int, void(*)(), void(*)() );
//main.cpp
#include "GUI.h"
#ifndef PAL_INCLUDE
#include "PAL.h"
#endif
Run Code Online (Sandbox Code Playgroud)
我误解了包含的本质#ifndef
吗?
我看到Fortran有'call'和'include'语句.两者有什么区别?.i文件类型有一些意义吗?
即:
include 'somefile.i'
call 'somesubroutine.f'
Run Code Online (Sandbox Code Playgroud)
谢谢!
有问题的一行是:
include_once 'anotherpage.php';
Run Code Online (Sandbox Code Playgroud)
anotherpage.php是完整的,不知道问题是什么...也可以随意包含一个更好的调试PHP代码的方法,而不是每个小东西来人.谢谢!
我有4个类:Server.cpp Logger.cpp Util.cpp Crypto.cpp
类Server使用对象Util.该程序工作正常,但现在我需要在Logger类中使用对象Util.但是当我输入代码#include"Util.cpp"时,g ++给我一个错误,因为我无法再次调用该对象.Eclipse告诉我关于类Util的"重新定义"和"先前声明".
我怎么解决这个问题?
我是C++的新手,我遇到了设置主体系结构的问题.我学会了如何在C#中使用这个特定的体系结构,但我无法在C++中使用它.我的问题如下:我有2个对象.我希望这些对象彼此"了解",所以我希望将这两个对象作为成员变量引用.
考虑一下:
//main.cpp:
#include "Object1.h"
#include "Object2.h"
Object1 *obj1;
Object2 *obj2;
...
obj1 = new Object1(obj2);
obj2 = new Object2(obj1);
...
//Object1.h
#ifndef OBJECT1_H
#define OBJECT1_H
#include "Object2.h"
class Object1 {
public:
Object1(Object2*);
Object2 *obj;
}
#endif
//Object2.h
#ifndef OBJECT2_H
#define OBJECT2_H
#include "Object1.h"
class Object2 {
public:
Object2(Object1*);
Object1 *obj;
}
#endif
Run Code Online (Sandbox Code Playgroud)
然而这是不可能的.因为如果没有ifndef的东西你就会有这种无休止的迭代,包括每个人的.h文件.但是对于ifndef,其中一个对象没有包含其他类定义,也不知道它应该创建什么对象.整个问题不会出现在C#中,因为您不必包含.h文件.你甚至没有.h文件:P.当你创建一个新类时,每个其他类都知道这个类的存在.但是在C++中,你必须包含特定类的.h才能生成这个类的对象(或者甚至是引用).
所以,我的问题是.如何将2个对象作为彼此的引用作为自己的成员变量?
感谢您的关注!
干杯,
Maxim Schoemaker
ld:重复符号StringFunctions :: intToString(int)in
/Build/Intermediates/Y36PJC-mrvikmil.build/Debug/Y36PJC-mrvikmil.build/Objects-normal/x86_64/ServerSocket.o and
/Build/Intermediates/Y36PJC-mrvikmil.build/Debug/Y36PJC-mrvikmil.build/Objects-normal/x86_64/main.o
Run Code Online (Sandbox Code Playgroud)
对于架构x86_64
function StringFunctions :: intToString(int)在StringFunctions.h中
包括来自main.cpp:
#include <iostream>
#include <string>
#include "Exception.h" //does not include anything more
#include "ServerConsole.h"
/*
which includes ServerSocket.h which includes ClientSocket.h which includes StringFunctions.h
AND
ServerSocket.h includes SocketException.h which includes StringFunctions.h
*/
Run Code Online (Sandbox Code Playgroud)
包括来自ServerSocket.cpp:
#include <iostream>
#include <string>
#include "InvalidPortException.h" //does not include anything more
#include "SocketException.h" //which includes StringFunctions.h
#include "ClientSocket.h" //which includes SocketException.h which includes StringFunctions.h
#include "StringFunctions.h" //StringFunctions.h
#include <sys/types.h>
#include …
Run Code Online (Sandbox Code Playgroud) 我在文件中有一个类,AType.h
它在AType.cpp中实现.
# include "PrivateType.h"
class AType{
private:
int a, b, c;
PrivateType varX;
public:
...
};
Run Code Online (Sandbox Code Playgroud)
我想在文件中使用类AType main.cpp
,我需要包含AType.h
,但我想避免包含PrivateType.h
在main.cpp中.
我无法varX
用malloc/new 创建.
main.cpp必须在编译时知道AType的大小.
目前的解决方案:(这很糟糕)
1 - 创建要打印的程序sizeof(AType)
.
2 - 更改标题:
# ifdef ATYPE_CPP
# include "PrivateType.h"
#endif
class AType{
private:
# ifdef ATYPE_CPP
int a, b, c;
PrivateType varX;
# else
char data[ the size that was printed ];
# endif
public:
...
};
Run Code Online (Sandbox Code Playgroud)
3 - 而AType.cpp将从以下开始:
# define ATYPE_CPP …
Run Code Online (Sandbox Code Playgroud) $num = 39; //sets number of weeks - there are only 38 rounds so 39 is fine
$num2 = $num-1; //for adding the previous weeks table - rest of code not added yet
while($num > 0) // set to 0 so that when it reaches week 1 it stops
{
if ( file_exists('./results/week'.$num.'.html'))
{
echo '<h1>week '.$num.'</h1>';
echo (include_once('./results/week'.$num.'.html'));
$num = $num - 1;
}
else
{
$num = $num - 1;
}
}
Run Code Online (Sandbox Code Playgroud)
嗨,我正在尝试添加一些表(html文件)到一个页面,这个代码似乎工作,但它在每个表的末尾添加1,所以我得到:
Week 3
Name Result
John …
Run Code Online (Sandbox Code Playgroud) 我尝试在IIS7.5(Windows 2008 Server R2)上安装这个经典的asp应用程序.一切都有效,除了包含反斜杠的虚拟语句,例如
<! - #include virtual ="\ includes\file.inc" - >
即使在IIS中启用了"启用父路径",也不起作用.
我不如果我改变反斜杠()来斜杠(/),即工作
<! - #包括虚拟= "/包含/ file.inc" - >
这段代码已经工作了很长时间,我现在并不热衷于改变这种代码.是否有一些我可以设置的设置让它工作,所以我可以使用代码原样?
此致,Mathias
现在我有这个
#include <zlib.h>
int main ()
{
puts (ZLIB_VERSION);
}
Run Code Online (Sandbox Code Playgroud)
作为一个练习,有没有什么方法可以让它在一行上编译,比如
#include <zlib.h>; int main (){ puts (ZLIB_VERSION); }
Run Code Online (Sandbox Code Playgroud)
我可以让它在两行上编译,但是include阻止了一行.
include ×10
c++ ×5
header-files ×3
c ×2
php ×2
asp-classic ×1
call ×1
declaration ×1
fortran ×1
gcc ×1
iis-7.5 ×1
ld ×1
object ×1