class MyString: String {}
Run Code Online (Sandbox Code Playgroud)
给出错误:
从非协议,非类型'String'继承.
所以看起来String
不是一个阶级.但为什么它可以用于AnyObject
预期的上下文?我虽然AnyObject
只是类类型,但Any
可以是类或非类类型.
我有一个使用Ionic框架开发的Cordova应用程序,曾经在iOS上运行良好,但在iOS 10上则不然.当我在模拟器中启动应用程序时,没有Angular特定的工作(绑定,事件等).这是一个截图.
如果我从Safari附加开发人员工具,我在控制台中看不到任何内容.但是,如果我按下刷新按钮并重新加载索引页,一切都会正常工作.
我怀疑这与iOS 10上的内容安全策略有关.我的Content-Security-Policy元标记如下所示:
<meta http-equiv="Content-Security-Policy"
content="default-src 'self' data: gap: file://* * 'unsafe-eval';
script-src 'self' 'unsafe-inline' 'unsafe-eval' *;
style-src 'self' 'unsafe-inline' *;
media-src *">
Run Code Online (Sandbox Code Playgroud)
我已经尝试过与其他人面临的类似问题相关的各种建议,但没有任何帮助.任何建议都表示赞赏.
我需要生成16位伪随机整数,我想知道最好的选择是什么.
我想到的显而易见的方法如下:
std::random_device rd;
auto seed_data = std::array<int, std::mt19937::state_size> {};
std::generate(std::begin(seed_data), std::end(seed_data), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
std::mt19937 generator(seq);
std::uniform_int_distribution<short> dis(std::numeric_limits<short>::min(),
std::numeric_limits<short>::max());
short n = dis(generator);
Run Code Online (Sandbox Code Playgroud)
我在这里看到的问题是std::mt19937
产生32位无符号整数,因为它定义如下:
using mt19937 = mersenne_twister_engine<unsigned int,
32, 624, 397,
31, 0x9908b0df,
11, 0xffffffff,
7, 0x9d2c5680,
15, 0xefc60000,
18, 1812433253>;
Run Code Online (Sandbox Code Playgroud)
这意味着静态转换完成,并且分布仅使用这些32位整数的最不重要部分.所以我想知道这些伪随机短裤系列有多好,我没有数学专业知识来回答这个问题.
我希望更好的解决方案是将自己定义的mersenne_twister_engine
引擎用于16位整数.但是,我没有找到任何提到的模板参数集(例如,可以在这里找到需求).有吗?
更新:我通过正确的分发初始化更新了代码示例.
我试图在MFC中创建一个搜索编辑控件,它始终在控件窗口中显示一个图标(无论控件的状态和文本如何).我多年前写过类似的东西并且运行得很好,但代码不再适用于Windows 7及更新版本(甚至可能是Vista,但没有尝试过).发生的情况是控件中显示的图像与输入区域重叠(参见下图).
代码背后的想法:
CEdit
(在OnPaint中处理绘画)PreSubclassWindow()
,OnSize()
和OnSetFont()
这是编辑输入大小的应用方式:
void CSymbolEdit::RecalcLayout()
{
int width = GetSystemMetrics( SM_CXSMICON );
if(m_hSymbolIcon)
{
if (GetStyle() & ES_MULTILINE)
{
CRect editRect;
GetRect(&editRect);
editRect.right -= (width + 6);
SetRect(&editRect);
}
else
{
DWORD dwMargins = GetMargins();
SetMargins(LOWORD(dwMargins), width + 6);
}
}
}
Run Code Online (Sandbox Code Playgroud)
下图显示了单行编辑的问题(图像已放大以获得更好的视图).黄色背景仅用于突出显示,在实际代码中我使用COLOR_WINDOW
系统颜色.您可以看到,当单行编辑具有文本并具有输入时,左侧图像将被绘制.对于SetRect
正确设置格式矩形的多行编辑,不会发生这种情况.
我尝试使用ExcludeClipRect删除正在显示图像的编辑区域.
CRect rc;
GetClientRect(rc);
CPaintDC dc(this);
ExcludeClipRect(dc.m_hDC, rc.right - width - 6, rc.top, rc.right, rc.bottom); …
Run Code Online (Sandbox Code Playgroud) 当我试图将Array
VFP9语言COM/DLL返回到我的.NET C#项目时,我收到一个System.Object[*]
数组,我无法转换为System.Object[]
(没有星号).
我有一个ListView
控件,显示可观察集合中的项目.这些项目需要过滤.我可以用a做CollectionViewSource
,但每次项目更改时都需要更新过滤器.
我的项目看起来像这样:
enum Status {Done, Failed, Skipped, ...}
class Project {
public string Name {get;set;}
public Status Status {get;set;}
// etc. etc.
}
class ProjectViewModel : INotifyPropertyChanged {
private Project project;
public ProjectBuildInfoViewModel(ProjectBuildInfo project)
{
this.project = project;
}
public string Name
{
get { return project.Name; }
set { project.Name = value; OnPropertyChanged("Name"); }
}
// etc. etc.
}
class CollectionViewModel {
private ObservableCollection<ProjectViewModel> projects =
new ObservableCollection<ProjectViewModel>();
public ObservableCollection<ProjectViewModel> Collection
{
get { return …
Run Code Online (Sandbox Code Playgroud) 我花了最后3个小时试图找出我做错了什么.我只需要另外一些眼睛,我已经尝试了我能想到的一切,甚至各种随机排列,试图让编译器告诉我一些有用的东西.
这是我现在的位置:
码:
class villain
{
public:
villain();
//lots of other stuff
bool Type1EnemyBlasts();
bool Type2EnemyBlasts();
bool (villain::*OnFire)();
};
villain::villain()
{
//lots of other stuff
OnFire = &villain::Type1EnemyBlasts;
}
main
{
//lots and lots of other stuff
villain *targets[100];
targets[0] = new villain();
if(targets[0]->*OnFire() == true)
{
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
当我调用"targets [0] - >*OnFire()"时会发生错误,其中声明它未在此范围内声明.当我在恶棍构造函数中定义它时,我必须用"&villain ::"来定义"OnFire",这让我觉得很奇怪,但是我发现的所有信息都表明它必须以这种方式完成,而且确实它会搅动如果我不这样做,就会发生过多的错误.
调用属于目标[0]的*OnFire()指针的正确语法是什么?
我在使用$ionicHistory
的页面上使用时遇到问题ion-tabs
.我用它来导航到上一个视图(使用goBack()
).当我在视图中放置标签时,历史记录是错误的,后视图是之前的两个视图.
为了证明这一点,我创建了一个具有4页/视图的演示应用程序(此处为 plunker ).第1页 - >第2页 - >第3页 - >第4页.最后一页上有标签.
angular
.module("demoapp", ['ionic'])
.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider){
$stateProvider
.state('first', {
url: '/',
controller: 'firstController',
templateUrl: 'first.html',
})
.state('second', {
url: '/second',
controller: 'secondController',
templateUrl: 'second.html',
})
.state('third', {
url: '/third',
controller: 'thirdController',
templateUrl: 'third.html',
})
.state('fourth', {
url: '/fourth',
controller: 'fourthController',
templateUrl: 'fourth.html',
});
$urlRouterProvider.otherwise("/");
}])
.factory("historyFactory", ['$ionicHistory', function($ionicHistory){
var show = function() {
var text = "";
var vh = $ionicHistory.viewHistory();
if(vh …
Run Code Online (Sandbox Code Playgroud) 我已按照WebView2 入门(开发者预览版)中的所有说明创建了一个使用 Microsoft Edge (Chromium) 的应用程序。但是,它无法找到 Edge 浏览器。我还尝试了示例应用程序(this和this),但结果相同。我已经为 32 位和 64 位构建了应用程序。
我从调用中得到的CreateWebView2EnvironmentWithDetails()
是错误0x80070002
,即ERROR_FILE_NOT_FOUND
(系统找不到指定的文件。)
HRESULT hr = CreateWebView2EnvironmentWithDetails(nullptr, nullptr, nullptr,
Callback<IWebView2CreateWebView2EnvironmentCompletedHandler>(
[hWnd](HRESULT result, IWebView2Environment* env) -> HRESULT {
// Create a WebView, whose parent is the main window hWnd
env->CreateWebView(hWnd, Callback<IWebView2CreateWebViewCompletedHandler>(
[hWnd](HRESULT result, IWebView2WebView* webview) -> HRESULT {
if (webview != nullptr) {
webviewWindow = webview;
}
// Resize WebView to fit the bounds of the parent …
Run Code Online (Sandbox Code Playgroud) 我正在将MFC应用程序本地化为日语,并且资源正常运行.
我当前的问题是,当我使用AfxMessageBox
或者MessageBox
,对话框标题和按钮消息以英文出现时,我还没有找到任何改变它的地方.
我没有找到任何有用的搜索MSDN或谷歌.
所以,
这有用吗?Windows是否提供日语,阿拉伯语和俄语的"确定"或"是/否"按钮?
如果没有,我可以指定更改这些内容?
编辑:我去了MessageBoxEx
,写一个包装类,使其使用方便AfxMessageBox
.它看起来MB_OK
在英语和日语中都显示为"OK",但是其他按钮选项MB_YESNO
被翻译成我认为正确的日语.这是一个相当小的翻译应用程序,我们可能希望对较大的应用程序使用自动化的东西.