我可以在MS Word或Notepad上写阿拉伯语/乌尔都语/波斯语就好了,但每当我插入任何英文单词或数字时,序列就会受到干扰,看起来所有的单词都在句子中被洗牌了.
看下面的例子:
?? ??? ???? ?? ???? ?? ...
Run Code Online (Sandbox Code Playgroud)
现在我插入了一个英文单词,它变为:
?? ??? ???? ??word ???? ?? ...
Run Code Online (Sandbox Code Playgroud)
所以你可以看到几乎所有的单词都被混淆了......解决方法是什么?
要修改另一个程序的窗口,我需要SysTreeView32使用EnumChildWindowsAPI调用在其中找到特定的窗口.
当我使用Spy ++检查窗口时,其中有许多SysTreeView32内容但除了一个之外都是灰色的,这是我正在寻找的.
以下图片是灰色项目的示例:

为什么显示的项目是灰色的,以及Spy ++使用什么API调用来知道它是否应该使项目变灰?
我正在制作8051汇编程序.
在所有东西都是一个读取下一个令牌的标记器之前,设置错误标志,识别EOF等.
然后是编译器的主循环,它读取下一个标记并检查有效的助记符:
mnemonic= NextToken();
if (mnemonic.Error)
{
//throw some error
}
else if (mnemonic.Text == "ADD")
{
...
}
else if (mnemonic.Text == "ADDC")
{
...
}
Run Code Online (Sandbox Code Playgroud)
它继续有几个案例.更糟糕的是每个案例中的代码,它检查有效参数然后将其转换为编译代码.现在它看起来像这样:
if (mnemonic.Text == "MOV")
{
arg1 = NextToken();
if (arg1.Error) { /* throw error */ break; }
arg2 = NextToken();
if (arg2.Error) { /* throw error */ break; }
if (arg1.Text == "A")
{
if (arg2.Text == "B")
output << 0x1234; //Example compiled code
else if (arg2.Text == "@B")
output << …Run Code Online (Sandbox Code Playgroud) 我正在设计自己的实验性脚本语言,以便将其嵌入到我更大的应用程序中.
我想做的几乎所有事情都是顺利编程的,但在内存中存储变量的"简单"行为似乎是最困难的部分.我不知道如何存储它们以允许所有类型检查,全局变量和特殊标志.首先看一下示例代码:
a = 1
b = 2
someFunction()
print(a) --> This should read the global variable and print `1`
a = 3 --> Now `a` should become a local variable of this function
and the global `a` remain unchanged
x = 4 --> `x` should always be local of this function
end
Run Code Online (Sandbox Code Playgroud)
我将变量的"局部性"称为levels,因此嵌套块中的变量具有更高的级别.在上面的代码,a并且b是1级的变量.someFunction的局部变量将具有2级.函数的第一行应该读取全局变量a(级别1),但是第二行应该创建一个再次调用的变量,a但是级别2会a从该点开始影响全局变量.第三行应该创建x级别为2 的变量.如何在内存中存储和跟踪所有这些变量?
到目前为止我尝试了什么:
方法1:存储variable=>value级别数组的映射:
variables
{
level=1 //global variables
{
a …Run Code Online (Sandbox Code Playgroud) compiler-construction memory-management language-design global-variables data-structures
假设您有一个具有信用卡支付功能的购物应用程序。用户登录并开始购物。是否可以在用户登录后立即从数据库中获取他的信用卡号和密码并将它们保存到会话变量中,以消除在用户完成付款的后续步骤中对未来 SQL 查询的需要?
请在以下情况下
进行描述:a) 连接不安全
b) 连接是在 SSL 安全下建立的
上面的信用卡申请就是一个例子。我想深入了解会话变量的安全性。
如何使用 QProcess 启动 Shell 脚本?Shell 脚本中有八个不同的命令,其中一些带有参数,另一些则没有。
我尝试使用(使用 Ubuntu 11.10)启动 Shell 脚本:
QProcess *Prozess = new QProcess();
Prozess->setWorkingDirectory(MainDirectory);
Prozess->start("/bin/sh", QStringList() << "Shell.sh");
Run Code Online (Sandbox Code Playgroud)
但这不起作用,这意味着什么也没有发生。如何使它工作?
我正在创建一个控件数组并将它们添加到表单中,并将它们的事件设置为一个函数,该函数使用lambda表达式(b.Click += (sender, e) => myClick(i);)接收所单击按钮的索引.
但问题是......无论你点击什么,你都会收到索引100,而不是按钮的真实索引!这里有什么问题?
namespace testArrayOfControls
{
public partial class Form1 : Form
{
Button[] buttons;
public Form1()
{
InitializeComponent();
buttons = new Button[100];
for (int i = 0; i < 100; i++)
{
buttons[i] = new Button();
buttons[i].SetBounds(i % 10 * 50, i / 10 * 50, 50, 50);
buttons[i].Click += (sender, e) => myClick(i);
this.Controls.Add(buttons[i]);
}
}
private void myClick(int i)
{
MessageBox.Show(i.ToString());
}
}
}
Run Code Online (Sandbox Code Playgroud) Scott Meyers在他的书"Effective C++"中说,
要禁止编译器自动提供的功能,请将相应的成员函数声明为private并且不执行任何实现.然后,如果有人无意中调用了一个,则会在链接时出现错误.
我试图编写一个示例程序来实现Scott试图解释的内容.即使声明了成员函数public并且没有实现,我也可以实现相同的目标.当我试图从另一个对象初始化一个对象时,我的情况也发生了链接错误.所以我不明白为什么斯科特强调要宣布成员函数的需要private?
我的示例程序如下:
#include <iostream>
using namespace std;
class Unique
{
private:
int num;
public:
Unique(int x)
{
num = x;
}
Unique(const Unique &obj);
Unique& operator =(const Unique &obj);
void disp(void)
{
cout << "num = " << num << "\n";
}
};
int main()
{
Unique ob1(3);
Unique ob2(ob1);
ob1.disp();
ob2.disp();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我收到以下链接错误:
/tmp/ccXfqSqE.o(.text+0x135):在函数
main': : undefined reference toUnique :: Unique(Unique const&)'collect2:ld返回1退出状态
c++ constructor operator-overloading access-specifier implicit-conversion
noob问题!我怎样才能将'整个ifstream'读成stdlib'字符串'?我现在用于所有项目的当前方式浪费了很多时间我认为:
string code;
ifstream input("~/myfile");
char c1=input.get();
while (c1!=EOF)
{
code+=c1;
len++;
c1=input.get();
}
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我更喜欢自己做线和空白管理.
我需要有一个std::vector的boost::ptr_vector秒.为了简化管理,我将boost :: ptr_vector包含在一个class(Zoo)中,并创建了一个std :: vector(allZoos).查看用于复制此内容的最小代码:
#include <boost/ptr_container/ptr_vector.hpp>
#include <boost/utility.hpp>
class Animal
{
public:
virtual char type() = 0;
};
class Cat : public Animal
{
public:
char type() { return 1; }
};
class Zoo
{
public:
boost::ptr_vector<Animal> animals;
};
int main()
{
std::vector<Zoo> allZoos;
Zoo ourCityZoo;
ourCityZoo.animals.push_back(new Cat());
//Uncommenting any of the lines below causes error:
//allZoos.push_back(ourCityZoo);
//allZoos.clear();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
声明allZoos是可以的,但调用其任何成员函数会导致编译器错误:(完整错误日志太长,未发布)
C2259: 'Animal' : cannot instantiate abstract class …Run Code Online (Sandbox Code Playgroud) 以下功能是在一个时钟周期内执行的吗?
__builtin_popcount
__builtin_ctz
__builtin_clz
Run Code Online (Sandbox Code Playgroud)
同样的ll(64位)版本的时钟周期是多少.他们是便携式的吗 为什么或者为什么不?
在C#中创建控件数组时,如何将接收单击按钮索引的函数绑定到其click事件?
以下是一些仅用于更好理解的代码.在代码之上的某处,您可以定义按钮:
Button [] buttons = new Button[100];
Run Code Online (Sandbox Code Playgroud)
它们的标准Click事件如下所示:
private void myClick(object sender, EventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
通常你这样绑定它:
for (int i = 0; i < 100; i++)
buttons[i].Click += myClick;
Run Code Online (Sandbox Code Playgroud)
但我希望事件处理程序采用以下形式:
private void myClick(int Index)
{
}
Run Code Online (Sandbox Code Playgroud)
如何使用/不使用临时功能将点击事件绑定到上述功能?
我想过使用委托,Func<T, TResult>表示法,或以某种方式传递自定义EventArgs,其中包含单击按钮的索引; 但由于缺乏足够的C#知识,我没有成功.
如果你们中的任何人建议在其标签中保存每个控件的索引:是的,这是可能的,但我不想出于某种原因使用它,因为如果你有一个类抛出一些事件但是没有标签属性或东西,这种方式是没用的.
此代码是否返回对堆栈上分配的变量的无效引用?或者是什么:
void *f(size_t sz) {
return alloca(sz);
}
Run Code Online (Sandbox Code Playgroud)
或者这是一个由alloca实现/编译器支持处理的特殊情况f(alloca(size), alloca(size))?
c++ ×6
c ×2
c# ×2
winforms ×2
alloca ×1
arabic ×1
assembly ×1
bash ×1
bidi ×1
bind ×1
constructor ×1
direction ×1
gcc ×1
lambda ×1
ms-word ×1
persian ×1
php ×1
pointers ×1
polymorphism ×1
ptr-vector ×1
qprocess ×1
qt ×1
security ×1
session ×1
shell ×1
spy ×1
spy++ ×1
stack ×1
std ×1
vector ×1
winapi ×1
windows ×1