我有两节课:
template <class T>
class TArray
{
public:
TArray& operator =(const TArray &array) { return Copy(array); }
virtual TArray& Copy(const TArray &array) { ... }
}
class TString : public TArray<TCHAR>
{
public:
TString& Copy(const TString &string) { ... }
}
Run Code Online (Sandbox Code Playgroud)
类也需要构造函数.但是Copy第二类中的方法不会覆盖第一类中的方法.考虑以下代码:
TString a = _T("aaa");
TString b;
b = a;
Run Code Online (Sandbox Code Playgroud)
在第三行程序中输入赋值运算符TArray.在它this,array真的是类型TString.但是当Copy调用时,程序输入方法TArray :: Copy,而不是我预期的TString :: Copy.为什么?
我正在使用Visual Studio 2015 RC,但我正在从Visual Studio 6.0项目移动一些代码,我很确定它已经在其中工作了.改变了什么?
使用Visual Studio 2015 RC和Windows SDK 7.1以及这个简单的DirectShow代码(带有COM的C++)
#include <dshow.h>
#include <iostream>
int main ()
{
CoInitialize(nullptr);
ICreateDevEnum* devEnum = nullptr;
CoCreateInstance(
CLSID_SystemClock,
NULL,
CLSCTX_INPROC_SERVER,
IID_ICreateDevEnum,
reinterpret_cast<void**>(devEnum)
);
IEnumMoniker* monikerEnum = nullptr;
devEnum->CreateClassEnumerator(
CLSID_VideoInputDeviceCategory,
&monikerEnum,
0
);
IMoniker* moniker = nullptr;
ULONG fetchedCount = 0;
while (monikerEnum->Next(1, &moniker, &fetchedCount))
{
IPropertyBag* propBag = nullptr;
moniker->BindToStorage(0, 0, IID_IPropertyBag, reinterpret_cast<void**>(propBag));
VARIANT var;
VariantInit(&var);
propBag->Read(L"FriendlyName", &var, nullptr);
std::cout << var.bStrVal;
VariantClear(&var);
}
}
Run Code Online (Sandbox Code Playgroud)
导致:
错误C2039:'bStrVal':不是'tagVARIANT'的成员
的tagVARIANT结构被定义为:
typedef /* [wire_marshal] */ struct tagVARIANT VARIANT; …Run Code Online (Sandbox Code Playgroud) 刚刚安装Visual Studio 2015,无法找到如何显示下拉菜单,以快速查找类中的特定功能或过程.

我卸载了VS2013而没有卸载带有更新1 SDK的WP8.1然后安装了VS2015社区但我现在找不到Win10 SDK.是因为我安装了WP8.1 SDK吗?我可以在VS2015中安装两个SDK吗?
补充:我安装了两个SDK,但是当我创建新项目时,我只能找到WP8选项,如下所示:
谢谢.
windows visual-studio windows-10 visual-studio-2015 windows-10-mobile
我尝试在Windows 10上安装适用于Windows 10的Visual Studio 2015 Express,但它失败了并且没有安装.
我尝试再次卸载和安装,但它没有用.
这是日志文件.
这看起来像导致问题的部分:
MSI (s) (F4:78) [18:08:41:658]: SECREPAIR: A general error running CryptAcquireContext
MSI (s) (F4:78) [18:08:41:658]: Determining source type
MSI (s) (F4:78) [18:08:41:659]: Source type from package 'winexpress_coremsi.msi': 0
MSI (s) (F4:78) [18:08:41:659]: SECREPAIR: Hash Database: C:\WINDOWS\Installer\SourceHash{4D2824C5-DA58-3442-BB90-F71EA6B07EA9}
MSI (s) (F4:78) [18:08:41:661]: Note: 1: 2262 2: SourceHash 3: -2147287038
MSI (s) (F4:78) [18:08:41:705]: SECREPAIR: New Hash Database creation complete.
MSI (s) (F4:78) [18:08:41:705]: SECREPAIR: Crypt Provider not initialized. Error:0
MSI (s) …Run Code Online (Sandbox Code Playgroud) 我正在尝试读取大小为114,808字节的二进制文件.我为文件分配内存,然后尝试使用fopen和读取文件fread.第一次fread被调用时,它总是以274个字节读取,并且后续调用feof始终返回1,即使显然没有到达文件的末尾.为什么是这样?
根据MSDN文档为feof,"该FEOF函数返回非零值,如果读取操作已试图读到文件的结束;否则它返回0".所以我不明白是什么导致feof一直回归1.
这是我到目前为止的代码.任何帮助将非常感激.谢谢!
// Open source file with read-only access
if ( iError == ERROR_SUCCESS )
{
#ifdef _MSC_VER
#pragma warning(disable : 4996)
#endif
pFile = fopen( pSrcPath, "r" );
if ( pFile == NULL )
{
iError = ERROR_FILE_NOT_FOUND;
}
}
// Read in source file to memory
if ( iError == ERROR_SUCCESS )
{
do
{
// Buffer pointer passed to fread …Run Code Online (Sandbox Code Playgroud) 我有一个 Xml,我想按名称获取单个元素。我尝试使用 SelectSingelNode 方法。这就是 MSDN 告诉你要做的:
https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.selectsinglenode%28v=vs.110%29.aspx
目前我正在使用 XmlDocument 和 XmlNodeList 来读取 Xml。但这给了我整棵树。
string path = "xml_path.xml";
FileStream reader = new FileStream(path, FileMode.Open, FileAccess.Read);
XmlDocument xdoc = new XmlDocument();
xdoc.Load(reader);
XmlNodeList node = xdoc.GetElementsByName("name");
Run Code Online (Sandbox Code Playgroud)
我在 win-universal-app 中找不到 SelectSingeNode 方法。我正在使用 Visual Studio 2015。为什么他们删除了这个?还有另一种方法可以通过名称获取单个元素吗?
我正在制作一个主要由复选框组成的程序。我想在程序关闭之前保存复选框状态,然后让程序将复选框状态设置为上次的状态。
我已经看过几个关于此的问题和答案,并且我都尝试过。他们中的大多数都相当旧,并且正在使用 VisualStudio 2010。我尝试过使用属性设置,并且我还尝试创建一个文件,然后读取该文件并将 CheckBox 状态设置为最后的状态。
我对 C# 还很陌生,所以我一定做错了什么,我将不胜感激你们能给我的任何帮助。谢谢。
我正在尝试在 VS2015 中加载一个 Web 项目,但出现以下错误。
创建虚拟目录 http://localhost:16858/ 失败并显示错误:文件名:redirection.config 错误:无法读取配置文件。
我试图删除 *.csproj.user 来重建文件。但它没有用。
如何解决这个问题呢 ?有什么建议 ?
我正在printf(const char * format, ...)为一个类实现一个类似的方法,在调用执行实际写入之前,我需要确定它的输出的确切大小,仅给出提供的format和给出的参数。va_listvsprintf()
是否有一个函数可以使用format和va_list来生成输出的确切长度?
c++ ×4
c# ×2
.net ×1
c ×1
checkbox ×1
com ×1
directshow ×1
feof ×1
file-io ×1
iis-express ×1
inheritance ×1
polymorphism ×1
printf ×1
templates ×1
variant ×1
windows ×1
windows-10 ×1
winforms ×1
xml ×1
xml-parsing ×1