标签: visual-c++

常量变量在头文件中不起作用

如果我像这样在我的标题中定义我的常量变量......

extern const double PI = 3.1415926535;
extern const double PI_under_180 = 180.0f / PI;
extern const double PI_over_180 = PI/180.0f;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

1>MyDirectX.obj : error LNK2005: "double const PI" (?PI@@3NB) already defined in main.obj
1>MyDirectX.obj : error LNK2005: "double const PI_under_180" (?PI_under_180@@3NB) already defined in main.obj
1>MyDirectX.obj : error LNK2005: "double const PI_over_180" (?PI_over_180@@3NB) already defined in main.obj
1>MyGame.obj : error LNK2005: "double const PI" (?PI@@3NB) already defined in main.obj
1>MyGame.obj : error LNK2005: "double const PI_under_180" (?PI_under_180@@3NB) already defined …
Run Code Online (Sandbox Code Playgroud)

c c++ visual-studio-2008 visual-studio visual-c++

55
推荐指数
3
解决办法
5万
查看次数

在大型C++遗留应用程序中查找"死代码"

我目前正在开发一个大型和旧的C++应用程序,在我之前有许多开发人员.项目,类和函数中有很多"死代码",任何人都不会使用它们.

有哪些工具可用于C++分析大型代码库以检测和重构死代码?注意:我不是在谈论像gcov这样的测试覆盖率工具.

你如何在项目中找到死代码?

c++ legacy visual-c++

54
推荐指数
2
解决办法
2万
查看次数

如何在Visual C++中禁止外部标头中的警告

我正在开始一个新的BREW项目,我想编译警告级别4(/ W4)以保持应用程序代码的美观和干净.问题是BREW标头本身不能用/ W4干净地编译.

在gcc中,您可以使用-I和-isystem来区分应用程序和系统头,然后默认情况下gcc不报告系统头中的任何编译警告.Visual C++中是否有等效的机制?

brew-framework suppress-warnings visual-c++ brewmp

54
推荐指数
5
解决办法
2万
查看次数

将元素插入向量的特定位置

我想将一个元素插入到向量的特定位置,我可以使用一个赋值:

// vec1 and 2 have the same length & filled in somehow
vec1;
vec2;

vec1[i] = vec2[i] // insert vec2[i] at position i of vec1
Run Code Online (Sandbox Code Playgroud)

或者我必须使用insert():

vector<sometype>::iterator iterator = vec1.begin();

vec1.insert(iterator+(i+1), vec2[i]);
Run Code Online (Sandbox Code Playgroud)

c++ stl insert vector visual-c++

54
推荐指数
2
解决办法
18万
查看次数

"链接库依赖关系"链接器选项在Visual Studio 2010 - 2015及更高版本中实际执行的操作是什么?

在VS2008之前,您可以在解决方案文件()中设置原生C++项目依赖项Project Dependencies ...,如果(默认情况下)设置链接器选项

Properties -> Linker -> General : Link Library Dependencies = Yes
Run Code Online (Sandbox Code Playgroud)

如果设置,Visual Studio Build将自动链接.lib到该项目所依赖的所有项目(DLL,LIB)的文件中将"静态"链接.


:微软改变了依赖关系是如何工作的 VS2010,现在你应该直接添加依赖到项目

Common Properties -> Framework and References : (List of depenencies) 

    (each lib/dll has a separate option: 
     Project Reference Properties -> Link Library Dependencies : True|False
Run Code Online (Sandbox Code Playgroud)

我很好.不是这个问题的内容.

(这里有一个解释:灵活的项目到项目参考.)


仍然可能然而定义的解决方案级项目的依赖性和General链接器选项也仍然存在.但它不起作用.看到:

特别是在这里看到(随后的问题)

linker dependencies projects-and-solutions visual-studio-2010 visual-c++

54
推荐指数
4
解决办法
4万
查看次数

dllexport和dllimport有什么区别?

我只想简单,简洁地解释这两者之间的区别.MSDN在这里没有详细介绍.

import dll export visual-c++

53
推荐指数
4
解决办法
3万
查看次数

从python调用MATLAB函数

是否可以在Python中运行MATLAB函数?我搜索互联网,我只能找到PyMat.坏的是编译版本只支持Python2.2,我使用的是2.6.所以我尝试下载源代码,所以我可以自己编译.但我无法编译它,VC++ express似乎没有必要的功能来编译它.有没有人有PC的编译版本?或任何替代PyMat?谢谢

python matlab visual-c++

53
推荐指数
4
解决办法
4万
查看次数

意外的文件结束错误

我希望你能帮助我,因为我不知道发生了什么.我在尝试将Beecrypt库添加到我的项目时遇到以下错误:

致命错误C1010:查找预编译头时意外结束文件.你忘了在你的来源添加'#include"stdafx.h"'吗?

其实我没有忘记将#include"stdafx"添加到我的源代码中.编译器将错误指向此.cxx文件的末尾:

#define BEECRYPT_CXX_DLL_EXPORT

#ifdef HAVE_CONFIG_H
# include "config.h"
#endif

#include "beecrypt/c++/security/SecureRandom.h"
#include "beecrypt/c++/security/SecureRandomSpi.h"
#include "beecrypt/c++/security/Security.h"

using namespace beecrypt::security;

SecureRandom* SecureRandom::getInstance(const String& algorithm) throw       (NoSuchAlgorithmException)
 {
Security::spi* tmp = Security::getSpi(algorithm, "SecureRandom");

assert(dynamic_cast<SecureRandomSpi*>(tmp->cspi));

SecureRandom* result = new SecureRandom(reinterpret_cast<SecureRandomSpi*>(tmp->cspi), tmp->prov, tmp->name);

delete tmp;

return result;
}

 SecureRandom* SecureRandom::getInstance(const String& type, const String& provider) throw (NoSuchAlgorithmException, NoSuchProviderException)
  {
Security::spi* tmp = Security::getSpi(type, "SecureRandom", provider);

assert(dynamic_cast<SecureRandomSpi*>(tmp->cspi));

SecureRandom* result = new SecureRandom(reinterpret_cast<SecureRandomSpi*>(tmp->cspi), tmp->prov, tmp->name);

delete tmp;

return result;
    }

   SecureRandom* SecureRandom::getInstance(const String& type, const …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors precompiled-headers visual-studio-2008 visual-c++

53
推荐指数
6
解决办法
11万
查看次数

如何从DLL生成导入库(LIB文件)?

是否可以从DLL自动生成MSVC导入库(LIB文件)?怎么样?

windows dll visual-c++

53
推荐指数
5
解决办法
2万
查看次数

std :: to_string - 超过重载函数的实例与参数列表匹配

counter 是一个 int

void SentryManager::add(std::string name,std::shared_ptr<Sentry>){
    name = name + std::to_string(counter);
}
Run Code Online (Sandbox Code Playgroud)

什么是阻止此错误的最佳方法?当我懒惰时,我只是制作了int long long(或其他东西),但我确信有更好的解决方法.

错误信息:

sentrymanager.cpp(8): error C2668: 'std::to_string' : ambiguous call to overloaded function
Run Code Online (Sandbox Code Playgroud)

我正在使用Visual C++ 2010 Express.

c++ visual-studio-2010 visual-c++ c++11

53
推荐指数
2
解决办法
5万
查看次数