下面的代码给了我一个PSCustomObjects数组,如何让它返回一个字符串数组?
$files = Get-ChildItem $directory -Recurse | Select-Object FullName | Where-Object {!($_.psiscontainer)}
Run Code Online (Sandbox Code Playgroud)
(作为第二个问题,什么是psiscontainer部分?我从网上的例子中复制了它)
接受后编辑:两个很好的答案,希望我可以标记它们.已经给出了原始答案.
假设以下布局:
class Base
{
protected:
Base(P1 p1, P2 p2, P3 p3);
public:
virtual void SomeMethod() = 0;
}
class Derived : public Base
{
public:
using Base::Base;
public:
virtual void SomeMethod() override;
};
Run Code Online (Sandbox Code Playgroud)
我应该能够在Derived这里指定公共构造函数吗?VC++给出以下错误:
无法访问类'Derived'中声明的受保护成员
编译器已在此处生成'Derived :: Derived'[指向使用Base :: Base行]
请参阅'Derived'的声明
即它忽略了继承构造函数上方的访问修饰符.
这是该功能的限制吗?Base对于具有公共构造函数的类没有任何意义,因为它永远不能直接实例化(由于纯虚方法).
glVertexAttribPointer应该调用何时从文档中看不出来.看起来它是VBO初始化的一部分,但我注意到在渲染过程中调用它的示例代码.
glVertexAttribPointer(vertexAttributeId, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex2D), reinterpret_cast<const GLvoid*>(offsetof(Vertex2D, m_x)));
应该glVertexAttribPointer在初始化期间调用,GL_ARRAY_BUFFER还是应该在渲染期间调用(调用之后glBindBuffer)?
我有以下代码,当方法是"POST"时工作正常,但更改为"GET"不起作用:
HttpWebRequest request = null;
request = HttpWebRequest.Create(uri) as HttpWebRequest;
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
request.Method = "POST"; // Doesn't work with "GET"
request.BeginGetRequestStream(this.RequestCallback, null);
Run Code Online (Sandbox Code Playgroud)
我ProtocolViolationException用"GET"方法得到一个例外.
编辑:看了一下使用Reflector后,似乎有一个显式检查"GET"方法,如果设置为它会抛出异常.
Edit2:我已经将我的代码更新为以下内容,但是当我调用EndGetResponse()时它仍会抛出异常
if (request.Method == "GET")
{
request.BeginGetResponse(this.ResponseCallback, state);
}
else
{
request.BeginGetRequestStream(this.RequestCallback, state);
}
Run Code Online (Sandbox Code Playgroud)
在我的函数ResponseCallback中,我有这个:
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult);
Run Code Online (Sandbox Code Playgroud)
这也引发了异常.
回答
上面的代码现在可以工作了,我忘了取出导致异常被抛出的Content-Type行.+1来调整和回答Jon.
工作代码如下:
HttpWebRequest request = null;
request = HttpWebRequest.Create(uri) as HttpWebRequest;
request.Method = "GET";// Supports POST too
if (request.Method == "GET")
{
request.BeginGetResponse(this.ResponseCallback, state);
}
else
{
request.BeginGetRequestStream(this.RequestCallback, state); …Run Code Online (Sandbox Code Playgroud) 我是Python的初学者,我一直在尝试调用命令行应用程序,但它失败了:
>>> import subprocess as s
>>> s.call("gpio -g read 17")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/subprocess.py", line 470, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.6/subprocess.py", line 623, in __init__
errread, errwrite)
File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)
但是如果我添加shell=True它就会开始工作.有人可以解释原因吗?
>>> import subprocess as s
>>> s.call("gpio -g read 17", shell=True)
>>> 0
Run Code Online (Sandbox Code Playgroud) 我很想知道存储this指针的最佳/常用方法WndProc.我知道几种方法,但据我所知,每种方法都有其自身的缺点.我的问题是:
有哪些不同的方式来生成这种代码:
CWindow::WndProc(UINT msg, WPARAM wParam, LPARAM)
{
this->DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
我可以想到Thunks,HashMaps,Thread Local Storage和Window User Data结构.
每种方法的优点/缺点是什么?
代码示例和建议获得的分数.
这纯粹是出于好奇心.使用MFC之后,我一直想知道它是如何工作的,然后开始考虑ATL等.
编辑:我可以HWND在窗口过程中有效使用的最早的地方是什么?它记录为WM_NCCREATE- 但如果您实际进行实验,那不是第一个发送到窗口的消息.
编辑: ATL使用thunk访问此指针.MFC使用HWNDs 的哈希表查找.
如果我有以下内容:
char test[10] = "#";
Run Code Online (Sandbox Code Playgroud)
是test[1]通过test[9]保证\0吗?或者只test[1]保证是\0?
通过Visual Studio中的构建步骤,我需要采取哪些步骤来自动构建HTML文档?我已经准备好所有注释并生成了comments.xml文件,并安装了Sandcastle.我只需要知道要在构建后步骤中添加什么以生成文档.
我有一个数组中的文件列表.我想枚举这些文件,并从中删除特定文件.显然我无法从数组中删除项目,所以我想使用一个ArrayList.但以下对我不起作用:
$temp = Get-ResourceFiles
$resourceFiles = New-Object System.Collections.ArrayList($temp)
Run Code Online (Sandbox Code Playgroud)
$temp数组在哪里.
我怎样才能做到这一点?
当消息泵中抛出异常时,我们遇到的问题是Windows静默地吃异常并允许应用程序继续运行.例如,我们创建了一个测试MFC MDI应用程序,并覆盖了OnDraw:
void CTestView::OnDraw(CDC* /*pDC*/)
{
*(int*)0 = 0; // Crash
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
}
Run Code Online (Sandbox Code Playgroud)
在运行应用程序时,您会发现一个令人讨厌的错误消息,但实际上您什么也得不到.该程序似乎运行得很好,但是如果你检查输出窗口,你会看到:
Test.exe中0x13929384处的第一次机会异常:0xC0000005:访问冲突写入位置0x00000000.
Test.exe中0x77c6ee42的第一次机会异常:0xC0150010:当前执行的线程未激活的激活上下文无效.
我知道为什么我收到应用程序上下文异常,但为什么要静默处理?这意味着我们的应用程序在使用时可能会遇到严重问题,但我们永远不会知道它,因为我们的用户永远不会报告任何问题.
c++ ×4
c# ×2
powershell ×2
windows ×2
.net ×1
c++11 ×1
declaration ×1
exception ×1
http ×1
message-pump ×1
mfc ×1
oop ×1
opengl ×1
process ×1
python ×1
python-2.6 ×1
raspberry-pi ×1
sandcastle ×1
silverlight ×1
visual-c++ ×1
web-services ×1
winapi ×1
wndproc ×1