我正在尝试在Eclipse Luna(4.4)上安装ANTLR 4 IDE.我已经从Marketplace安装了它,但我不知道如何创建一个包含ANTLR 4 Lexer/Parser的项目.
当我去创建一个新项目时,我没有看到ANTLR 4的任何选项.我尝试创建一个.g4文件,它在编辑器中打开,但是当我保存它没有做任何事情.
我有一个构建设置,最后会构建一个 Wix 项目来为我的应用程序创建一个 MSI。当我尝试运行构建时,它会进入链接步骤并在它被取消之前挂起大约一个小时。没有错误信息或任何信息可以解释可能发生的情况。它挂起的日志是:
Link:
C:\Program Files (x86)\WiX Toolset v3.11\bin\Light.exe -out D:\a\1\s\myapplication.msi -pdbout D:\a\1\s\myapplication.wixpdb -cultures:null -ext "C:\Program Files (x86)\WiX Toolset v3.11\bin\\WixUtilExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.11\bin\\WixUIExtension.dll" -ext "C:\Program Files (x86)\WiX Toolset v3.11\bin\\WixNetFxExtension.dll" -sice:ICE30 -sice:ICE80 -contentsfile obj\Release\Installer.wixproj.BindContentsFileListnull.txt -outputsfile obj\Release\Installer.wixproj.BindOutputsFileListnull.txt -builtoutputsfile obj\Release\Installer.wixproj.BindBuiltOutputsFileListnull.txt -wixprojectfile D:\a\1\s\Installer.wixproj obj\Release\pthC2B68370CAB72F5041F3FBDF89753BBA\ActionsAndSequences.wixobj obj\Release\pthC2B68370CAB72F5041F3FBDF89753BBA\LangComponents.wixobj obj\Release\pthC2B68370CAB72F5041F3FBDF89753BBA\Upgrades.wixobj obj\Release\pthF392250A412040E3E7164BEF9B45533D\ClientUIFlow.wixobj obj\Release\pthF392250A412040E3E7164BEF9B45533D\OldClientWarningDlg.wixobj obj\Release\pthF392250A412040E3E7164BEF9B45533D\SetServicesUrlDlg.wixobj obj\Release\pthC2B68370CAB72F5041F3FBDF89753BBA\Components.wixobj obj\Release\Product.wixobj
Windows Installer XML Toolset Linker version 3.11.2.4516
Copyright (c) .NET Foundation and contributors. All rights reserved.
Run Code Online (Sandbox Code Playgroud)
我使用的配置是:
- task: MSBuild@1
displayName: 'Building Installer'
inputs:
solution: '/path/to/solution'
platform: 'x86'
configuration: …Run Code Online (Sandbox Code Playgroud) 我正在尝试更多地了解QtQuick和QML.我目前的目标是了解如何将数据从C++模型绑定到我的视图.到目前为止,我已经能够在我的QML中设置模型并从模型中获取数据,但我无法弄清楚如何更新我的数据.
如何为我的C++模型设置双向绑定?下面是我到目前为止编写的代码.
message.h
class Message : public QObject
{
Q_OBJECT
Q_PROPERTY(QString author READ getAuthor WRITE setAuthor NOTIFY authorChanged)
Q_PROPERTY(QString message READ getMessage WRITE setMessage NOTIFY messageChanged)
Q_SIGNALS:
void authorChanged(QString author);
void messageChanged(QString message);
public:
Message(QObject *parent = 0);
QString getAuthor();
void setAuthor(QString author);
QString getMessage();
void setMessage(QString message);
private:
QString _author;
QString _message;
};
Run Code Online (Sandbox Code Playgroud)
message.cpp
#include "message.h"
Message::Message(QObject *parent) : QObject(parent)
{
}
QString Message::getAuthor()
{
return _author;
}
void Message::setAuthor(QString author)
{
if(author != _author)
{
_author = author; …Run Code Online (Sandbox Code Playgroud) 关于如何拥有更易维护的javascript架构,我现在有点困惑.我可能不在轨道上,但我会说我的代码中有近50%涉及DOM因此使用我的基础库(jQuery).
我已经检查了[1] Nicholas Zakas的可扩展应用程序架构设计:http://developer.yahoo.com/yui/theater/video.php? v = zakas -architecture 和[2] Addy Osmani模式用于大规模JavaScript应用程序架构http://addyosmani.com/largescalejavascript/.
我有一个单页应用程序样式,通过ajax获取大量内容,动态添加DOM元素.我的主要问题是:如果我使用jQuery(或任何其他基础库)来操作DOM,我如何将代码分成小的可重用块.
让我们选择一个任务列表模块.我知道该模块可能如下所示:
var TaskList = function() {
addTask = function() {
...
};
removeTask = function() {
...
};
return {
addTask: addTask,
removeTask: removeTask
}
}();
Run Code Online (Sandbox Code Playgroud)
应该在哪里编写DOM元素事件注册,ajax调用以保存,加载或删除任务,将新任务附加到DOM元素等.
我承诺在模块上使用jQuery作为依赖项没有问题,但如果有更好的方法,我认为我从上面的两个资源中错过了它,我很想知道它.
我只是希望有一种更优雅的方式来维护不断增长的javascript,因为我厌倦了意大利面;)
谢谢你的时间!
我目前正在开发一个使用pthreads的项目.到目前为止,该项目启动了用户指定的线程数,并在每个线程上执行一些工作然后关闭.每个线程都存储在动态分配的内存数组中.我这样做使用:
threads = malloc(number_of_threads * sizeof(pthread_t));
然后我在for循环中创建每个线程:
pthread_create(&(threads[i]), NULL, client_pipe_run, (void *) ¶m[i]);
Run Code Online (Sandbox Code Playgroud)
我接下来需要做的是存储这些线程的返回值.我的理解是我需要将pthread_join传递给我想要存储返回值的指针的地址.这是我有点困惑的地方.到目前为止我的指针很好,然后我的大脑有一种融化的哈哈.这是我如何实现这一点的想法,但我不相信这是正确的:
int *return_vals = malloc(sizeof(int) * number_of_threads);
for(i = 0; i< number_of_threads; i++)
{
pthread_join(&(threads[i]),(void *) &(return_vals[i]));
}
Run Code Online (Sandbox Code Playgroud)
然后为了得到返回值,我会做类似的事情:
int val = *(return_val[0]);
Run Code Online (Sandbox Code Playgroud)
任何有关这方面的帮助将不胜感激!
我正在尝试使用单个全局矩阵实现关于固定点的缩放。运行时,如果单击控件,它会缩放,但每次单击时测试矩形会进一步向下和向右移动。据我所知,每个转换(到原点、缩放和返回到原始位置)都单独工作正常,但是当我将所有 3 个组合在一起时,我没有得到正确的行为。
缩放代码
单击控件时,代码(应该)转换到原点,按比例放大,然后转换回原始位置。
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
float xPos = e.Location.X - viewMatrix.OffsetX;
float yPos = e.Location.Y - viewMatrix.OffsetY;
Matrix translateOrigin = new Matrix(1, 0, 0, 1, -xPos, -yPos);
Matrix translateBack = new Matrix(1, 0, 0, 1, xPos, yPos);
Matrix scaleMatrix = new Matrix(1.5f, 0, 0, 1.5f, 0, 0);
viewMatrix.Multiply(translateOrigin);
viewMatrix.Multiply(scaleMatrix);
viewMatrix.Multiply(translateBack);
}
else
{
viewMatrix = new Matrix();
}
Refresh();
}
Run Code Online (Sandbox Code Playgroud)
绘图代码
这是我用来绘制的代码。这两个矩形仅供参考,第二个值new Pen(2)是为了确保我的线条保持 1 像素宽。
protected …Run Code Online (Sandbox Code Playgroud) antlr ×1
antlr4 ×1
architecture ×1
azure-devops ×1
c ×1
c# ×1
c++ ×1
eclipse ×1
java ×1
javascript ×1
matrix ×1
msbuild ×1
pthread-join ×1
pthreads ×1
qml ×1
qt ×1
qtquick2 ×1
winforms ×1