我刚刚成功创建了一个lua项目.(到目前为止,运行lua脚本的简单代码.)
但是,我现在如何为lua脚本创建c ++函数和c ++变量?
举个例子:
int Add(int x, int y) {
return x + y;
}
Run Code Online (Sandbox Code Playgroud)
和
float myFloatValue = 6.0
Run Code Online (Sandbox Code Playgroud)
我对c ++很新,所以我真的希望它不会太复杂.这是我到目前为止得到的代码顺便说一下:
#include "stdafx.h"
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
using namespace System;
int main(array<System::String ^> ^args)
{
lua_State* luaInt;
luaInt = lua_open();
luaL_openlibs (luaInt);
luaL_dofile (luaInt, "abc.lua");
lua_close(luaInt);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找在以下情况下获得窗口句柄的最佳方法:
我有进程ID和进程句柄,我知道窗口titlename,我知道该进程只有一个窗口.
那我该怎么办呢?FindWindow?EnumWIndows?
我现在有点困惑,因为我计划在我的一个项目中首次包含多个源文件和头文件.
所以我想知道这是否是正确的方法?
我是否必须在每个直接使用它的源文件中包含字符串标头?
那么Visual C++要我包含的"stdafx.hpp"标题呢?
这会是要走的路吗?
main.cpp中
#include "stdafx.hpp"
#include <string> //?
#include <stringLib1.h>
#include <stringLib2.h>
using std::string;
//use a windows.h function here
//use a stringLib1 function here
//use a stringLib2 function here
Run Code Online (Sandbox Code Playgroud)
stringLib1.h
#include "stdafx.hpp"
#include <string>
using std::string;
class uselessClass1
{
public:
string GetStringBack1(string myString);
};
Run Code Online (Sandbox Code Playgroud)
stringLib1.cpp
#include "stdafx.hpp"
string uselessClass1::GetStringBack1(string myString) {
return myString;
}
Run Code Online (Sandbox Code Playgroud)
stringLib2.h
#include "stdafx.hpp"
#include <string>
using std::string;
class uselessClass2
{
public:
string GetStringBack2(string myString);
};
Run Code Online (Sandbox Code Playgroud)
stringLib2.cpp
#include "stdafx.hpp"
string uselessClass2::GetStringBack2(string myString) { …Run Code Online (Sandbox Code Playgroud) c++ include standard-library header-files precompiled-headers
我的手机有一个简单的问题:当我从wifi热点断开连接时,我的手机不会自动重新连接,因为它总是认为没有互联网.这是因为我的防火墙.我猜测Android手机试图ping服务器以检查是否存在Internet连接.
所以我现在要做的就是编写一个简单的脚本,不断扫描Wifi网络,直到它找到我过去连接过的网络.
它可能是一个非常简单的脚本,但我找不到实际连接到接入点的方法.
import threading
import androidhelper
droid = androidhelper.Android()
knownAPs = ["home-wifi","workAP"]
def autoConnect():
threading.Timer(5.0, autoConnect).start()
droid.wifiStartScan()
nearbyAPs = droid.wifiGetScanResults().result
for i, curAP in enumerate(nearbyAPs):
if curAP['ssid'] in knownAPs:
# ?connect to a wifi?
autoConnect()
Run Code Online (Sandbox Code Playgroud)
我在文档中遗漏了什么吗?知道我怎么能做到这一点?
编辑:
据说可以在QPython中使用Kivy库.我找不到一个如何实现它的例子.但也许这个问题可以解决吗?
我有一个应该在字符串中的多个位置匹配的正则表达式模式.我想将所有匹配组放入一个数组中,然后打印每个元素.
所以,我一直在尝试这个:
#!/bin/bash
f=$'\n\tShare1 Disk\n\tShare2 Disk\n\tPrnt1 Printer'
regex=$'\n\t(.+?)\\s+Disk'
if [[ $f =~ $regex ]]
then
for match in "${BASH_REMATCH[@]}"
do
echo "New match: $match"
done
else
echo "No matches"
fi
Run Code Online (Sandbox Code Playgroud)
结果:
New match:
Share1 Disk
Share2 Disk
New match: Share1 Disk
Share2
Run Code Online (Sandbox Code Playgroud)
预期的结果将是
New match: Share1
New match: Share2
Run Code Online (Sandbox Code Playgroud)
我认为它不起作用,因为我.+?匹配贪婪.所以我查看了如何使用bash正则表达式实现这一点.但是每个人似乎都建议在perl正则表达式中使用grep.
但肯定还有另一种方式.我想的可能是[^\\s]+......但是输出的结果是:
New match:
Share1 Disk
New match: Share1
Run Code Online (Sandbox Code Playgroud)
... 有任何想法吗?
我有一个 bash 脚本,它执行大约 20 个命令,出于调试目的,我发现自己经常滚动输出。\n不幸的是 bash 没有告诉我输出的哪一部分是哪个命令的一部分。\n当我在脚本中使用“set -x”时,它至少会打印一些有关其刚刚执行的信息,但我不太喜欢它生成的输出。
\n\n例如,如果我有这个脚本:
\n\n#!/bin/bash\n\nset -x\necho "foo"\nif [ "$ASD" == "QWE" ] ; then\n echo "bar"\nfi\nRun Code Online (Sandbox Code Playgroud)\n\n我希望输出是这样的:
\n\n\n\n\n回显“foo”
\n
\n foo
\n 回显“bar”
\n bar
或者可能:
\n\n\n\n\necho "foo"
\n
\n foo
\n if [ "value_of_ASD" == "QWE" ] ; 然后
\n echo "bar"
\n bar
\n fi
除了用粗体打印命令之外,用颜色突出显示也可以。但我不只是想在命令前面有“+”字符,而且我也不喜欢 if 语句像 那样显示\'[\' value_of_ASD == QWE \']\'。
我怎样才能用 bash 来实现这一点?
\n\n目前输出看起来像这样:
\n\n+ echo …Run Code Online (Sandbox Code Playgroud) 我有一个基本代表一个屏幕的坐标系.
我有任意数量的职位.例如:
population = [
{x: 100.44, 200.54},
{x: 123.45, 678.9},
{x: 1300.23, 435.81},
{x: 462.23, 468.37},
{x: 956.58, 385.38},
];
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种找到最无人居住点的算法.
白色迷你圆圈代表人口和红色Xs标记点,对我来说似乎非常无人居住:
我的目标是运行一个动画,随机将所有这些白色迷你圆圈移动到随机方向,一旦圆圈离开屏幕,它就会被传送到最无人居住的地点,这样大空空间的数量就会减少.
我试图通过计算从每个整数坐标到每个圆的距离之和,然后选择具有最高距离和的坐标来实现这一点.仅此一点似乎已经非常耗费CPU,但我注意到这个算法会使圆圈传送到我的坐标系的边界.所以我还添加了从每个整数坐标到每个边界整数坐标的距离之和.那时,脚本基本上冻结了.所以这绝对不是正确的方法.
我的想法已经不多了.我想我不需要一个完美的算法,而是一个在精度和性能之间保持平衡的算法.最后,我希望能够在1920x1080画布上每秒多次运行该算法,其中大约有80个这样的小环.理想情况下,算法会有一个参数来调整精度,从而调整它使用的CPU时间.
这是我上面提到的方法.我注释掉导致脚本冻结的行:
let circles = [
{x: 60.44, y: 190.54},
{x: 103.45, y: 18.9},
{x: 390.23, y: 135.81},
{x: 302.23, y: 28.37},
{x: 56.58, y: 85.38},
]
function getDistance(p1, p2) {
return Math.sqrt((p1.x - p2.x) ** 2 + (p1.y - p2.y) ** 2)
}
function drawCircle(ctx,x,y,r,c) {
ctx.beginPath()
ctx.arc(x, y, r, 0, 2 * Math.PI, …Run Code Online (Sandbox Code Playgroud)WhatsApp将所有消息存储在sqlite文件中,该文件首先经过zlib压缩,然后经过AES加密。
解密/解压缩可以很容易地完成,例如:
def decrypt(db_file, key_file):
""" Function decrypt Crypt12 Database """
try:
with open(key_file, "rb") as fh:
key_data = fh.read()
key = key_data[126:]
with open(db_file, "rb") as fh:
db_data = fh.read()
iv = db_data[51:67]
aes = AES.new(key, mode=AES.MODE_GCM, nonce=iv)
with open("msgstore.db", "wb") as fh:
fh.write(zlib.decompress(aes.decrypt(db_data[67:-20])))
print db_file + " decrypted, msgstore.db created."
except Exception as e:
print "An error has ocurred decrypting the Database:", e
Run Code Online (Sandbox Code Playgroud)
但是,如果要撤消该过程,则必须生成页眉,页脚和IV。起初我以为您可以从另一个已经存在的crypt12文件中复制它们,如下所示:
def encrypt(db_file, key_file, db_cript):
""" Function encrypt msgstore Database """
try:
with open(key_file, "rb") …Run Code Online (Sandbox Code Playgroud) 首先,我不想注入一个DLL.我想使用WriteProcessMemory()注入代码(如果这是可能的话).我已经使用过ReadProcessMemory()所以我认为写作并不是什么大问题.
好吧,让我们说TargetProgram.exe + D78C612有一个功能,
让我们说它可以像这样调用:
push eax
push [esp+08]
push edx
push 00
push TargetProgram.exe+AF76235
push 04
call TargetProgram.exe+D78C612
Run Code Online (Sandbox Code Playgroud)
我将如何使用WriteProcessMemory()完成此操作?
我的意思是我在哪里可以找到一个部分,我可以在其中注入我的代码而不会覆盖重要的东西.最重要的是,我该如何调用该函数?
只需在活动例程中跳转到我的代码,然后跳回并删除它?但是我怎么能找到这个例程呢?
这么多问题,我不知道如何开始...我希望你能帮助我.:)
如果你有时间我真的想看一个函数调用注入的示例代码.
我正在使用 socat 创建一个虚拟串行端口。
socat -d -d pty,echo=0,raw pty,echo=0,raw
Run Code Online (Sandbox Code Playgroud)
到目前为止,效果符合预期。使用 echo/cat 我可以发送/接收文本等。
但是像 DTR 或 RTS 这样的信号线呢?我如何使用 pty 获取/设置这些行的状态?这可能吗?我在任何地方都找不到任何关于它的提及。
c++ ×4
bash ×2
linux ×2
python ×2
aes ×1
android ×1
android-wifi ×1
coordinates ×1
crypt12 ×1
encryption ×1
function ×1
header-files ×1
include ×1
javascript ×1
lua ×1
point ×1
pty ×1
qpython ×1
regex ×1
regex-greedy ×1
serial-port ×1
sh ×1
shell ×1
sl4a ×1
whatsapp ×1
winapi ×1