Tag: visual studio

在stdin中被视为EOF?

即使在我继续输入换行符后,我的Visual Studio仍在等待输入。 例如: while ((c = fgetc(stdin)) != EOF) { // do something } 我应该输入什么将EOF发送到Visual Studio?

VB.Net使用C DLL

将用C编写的DLL放入VB.NET(Express Edition 2010)项目的最佳方法是什么? 我现在有外部函数的声明来定位绝对路径,如下所示: C:\ Users \ Kyle \ Documents \ Pelles C Projects \ ROBOLIB \ ROBOLIB.dll 因为Visual Basic创建了许多不同的目录,所以程序可以从(Debug,Release,Publish)运行。 有什么办法可以告诉VB.NET将一些文件放到程序的目录中吗? 或者我应该以某种方式自定义安装程序,以便将我需要的DLL放在特定位置?

错误LNK2019:多项目解决方案中未解析的外部符号

我有一个包含多个项目的visual studio解决方案。 其中之一,“MyProject”是一个静态库(.lib)。 该项目与许多其他课程一样,有两个class级“A”和“B”。 啊: #pragma once class A { public: void foo(); }; A.cpp: #include Ah void A::foo(){ //do something } BH: #pragma once class B { public: void bar(); }; B.cpp: #include Bh #include Ah void B::bar(){ A a; a.foo(); } 没有编译错误我得到链接错误: OtherProject.lib(B.obj):错误LNK2019:未解析的外部符号“public:void __thiscall A :: foo(void)”(?foo @ A @@ QAE_NXZ)在函数“public:void __thiscall B […]

创建C代码的unit testing时LNK2001的问题

我正在尝试使用Visual Studio 2017中的本机unit testing项目为C代码配置unit testing 。但是当包含来自其他库的函数或甚至同一项目(lib)中的其他h文件时, 链接器工具错误LNK2001存在一些问题。 在没有Unit Test项目的情况下构建lib时链接没有问题。 当我对一个没有其他依赖的h和c文件进行unit testing时,它工作正常。 但是当我在其他h文件中包含调用函数时。 我遇到链接问题。 它像mytest项目(c ++)一样,没有与项目(c)相同的访问权限。 我不知道如何解决错误。 但我可以添加更多关于问题的信息,如果只需要询问,我会尝试获取它。

在新版本的Visual Studio上使用旧代码

我有一个项目,从C / C ++开始于90年代。 因此,它包含许多旧的编码风格,如K&R风格的函数声明,过时的函数,… 该项目在Visual Studio 2008中运行良好,但现在我想在新版本的Visual Studio(特别是VS 2010)中使用它,因为我们在Visual Studio 2010/2012中有其他项目。 我不想在我的机器上安装太多版本的Visual Studio。 当我尝试编译旧项目时,Visual Studio会抛出太多错误。 我可以修复所有这些,但我很害怕编辑源代码,我希望其他人也可以在旧版本的VS中使用它。 我希望该项目与VS保持向后兼容。 我的问题是如何在不更改代码的情况下在Visual Studio 2010/2012中使用旧代码。 或者,如果有必要,我如何只修复几行代码,但如果其他人在旧版本的VS中打开该代码,请确保它不会导致错误。 有没有办法告诉较新的Visual Studio版本使用较旧的编译器标志或类似的东西?

在没有优化的程序上使用VS2013进行调试,但当前上下文中仍然没有局部变量的符号

我正在尝试调试Python2.7以了解有关python如何工作的更多信息。 当我尝试在第4399行调试ceval.c时,我注意到我无法在IDE中看到arg值, 我检查了优化被禁用并且/ DEBUG选项已打开。 我看了反汇编,我确实看到arg有一个值,代码被执行了。 我尝试在VS2013和VS2017中进行调试,两者都是相同的甚至PDB加载 我使用dv命令尝试使用WinDbg,它仍然无法看到任何局部变量 我的编译命令是: /GS /analyze- /W3 /Gy /Zc:wchar_t /I”H:\project\cpython-2.7\Include” /I”H:\project\cpython-2.7\PC” /Zi /Gm- /Od /Fd”H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\vc120.pdb” /fp:precise /D “_CONSOLE” /D “WIN32” /D “_WIN32” /D “_DEBUG” /D “_MBCS” /errorReport:prompt /GF /WX- /Zc:forScope /Gd /Oy- /MDd /Fa”H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\” /nologo /Fo”H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\” /Fp”H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\python_d.pch” 我的链接命令是: /OUT:”H:\project\cpython-2.7\PCBuild\python_d.exe” /MANIFEST:NO /NXCOMPAT /PDB:”H:\project\cpython-2.7\PCBuild\python_d.pdb” /DYNAMICBASE “kernel32.lib” “user32.lib” “gdi32.lib” “winspool.lib” “comdlg32.lib” “advapi32.lib” “shell32.lib” “ole32.lib” […]

在MSVC中模拟C函数(Visual Studio)

我正在阅读几篇关于模拟 C函数的文章(比如CMock或CMocka ),但我不确定在这个过程中如何用模拟函数替换实际函数。 例如,CMocka依赖于使用GNU编译器的自动换行,GNU编译器支持诸如–wrap参数将__wrap前缀附加到函数调用,或者弱符号允许您覆盖任何您喜欢的符号。 但是你如何在Visual Studio中为几乎所有其他框架做到这一点? 例如, CMock有一个与此类似的例子 (这里简化了很多): // myfunc.c #include // this is the function we would like to test int MyFunc(char* Command) { // this is the call to the function we will mock return ParseStuff(Command); } 还有实际的实现,它包含链接器在实际应用程序中应该找到的实际function: // parsestuff.c int ParseStuff(char* cmd) { // do some actual work return 42; } […]

strstr()在gcc和VS中的实现是否具有线性复杂性?

我知道有快速的字符串搜索算法,如Boyer-Moore和Knuth-Morris-Pratt ,它们具有O(n + m)复杂度,而普通解决方案将是O(n * m)。 那么最流行的工具链(gcc和Visual Studio)的strstr()的实现是使用这些快速的O(n)算法,还是使用简单的解决方案?

使用Visual Studio构建R包(C API)

我正在尝试使用Visual Studio构建一个简单的R包,这是我的代码: #include #include SEXP add(SEXP a, SEXP b) { SEXP result = PROTECT(allocVector(REALSXP, 1)); REAL(result)[0] = asReal(a) + asReal(b); UNPROTECT(1); return result; } 我安装了R运行时和RTools。 当我尝试编译它时,我收到以下链接错误: error LNK2019: unresolved external symbol REAL referenced in function “struct SEXPREC * __cdecl add(struct SEXPREC *,struct SEXPREC *)” (?add@@YAPEAUSEXPREC@@PEAU1@0@Z) error LNK2019: unresolved external symbol Rf_asReal referenced in function “struct […]

如何使Visual Studio 2010将文件扩展名识别为C#/ ASPX / C / C ++文件?

VS 2005有一个解决方案: http://www.dotnetmonster.com/Uwe/Forum.aspx/vs/3298/Make-Visual-C-recognize-file-extensions-as-C-files 但是没有为VS2008和VS2010找到相同的注册表。 那么我在哪里可以找到解决方案更新呢? 谢谢。