我已经在我的mac中成功编译了lua.有用.它运行.现在,我想在XCode中将它与C++混合使用.所以我查看了链接库,这是在XCode中添加更多库的常用位置.但当然,卢阿不存在.现在,我如何告诉XCode lua的存在,以便程序可以正确包含lua.h?
我正在寻找一种在C++和Lua之间来回传输变量地址的方法.例如,将对象从C++传输到Lua并进行一些处理,然后将其传回C++.
但是,问题是如何从Lua执行C++函数或方法?或者需要解决方法吗?
如果可能的话,您是否可以添加一个代码段来向我展示它是如何完成的?
我知道我还没有完全理解整个画面,所以如果有什么不妥,请纠正我.
我正在关注http://www.cplusplus.com/reference/map/map/map/。
我正在尝试建立一个反向索引结构,该结构是一个具有64位整数作为键的映射,并且每个键将包含一个指向子映射的指针。子映射将包含int int对。所以我写了一些样本:
map<unsigned long long int, map<int, int>*> invertID;
int main(int argc, char *argv[]){
map<int,int>* m = new map<int,int>();
m[10] = 1;
invertID[1] = m;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但这通常是非指针类型映射的麻烦
std::map<char,int> first;
Run Code Online (Sandbox Code Playgroud)
如http://www.cplusplus.com/reference/map/map/map/中所述,我看到我们可以做到
first['a']= 10;
Run Code Online (Sandbox Code Playgroud)
但是,如果我们有一个map的指针类型,那我们该怎么做呢?我上面的代码将产生错误提示
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'int' (or there is no acceptable conversion)
Run Code Online (Sandbox Code Playgroud) 我需要直截了当.使用下面的代码:
vector<unsigned long long int> getAllNumbersInString(string line){
vector<unsigned long long int> v;
string word;
stringstream stream(line);
unsigned long long int num;
while(getline(stream, word, ',')){
num = atol(word.c_str());
v.push_back(num);
}
return v;
}
Run Code Online (Sandbox Code Playgroud)
此示例代码只是将输入字符串转换为存储在vector中的一系列unsigned long long int.
在上面的这种情况下,如果我有另一个函数调用这个函数,并且我们看起来在向量中有大约100,000个元素,这是否意味着,当我们返回它时,将创建一个新的向量并且将创建与该向量相同的元素在函数中,然后函数中的原始向量将在返回时被消除?到目前为止我的理解是否正确?
通常,我会以这样的方式编写代码:所有函数在返回容器时都会返回指针,但是,程序设计方面,并且根据我的理解,我们应该总是返回指向容器的指针吗?
Program received signal: “EXC_BAD_ACCESS”.
(gdb) bt
#0 0x30011940 in objc_msgSend ()
#1 0x30235f24 in CFRelease ()
#2 0x308f497c in -[UIImage dealloc] ()
#3 0x30236b78 in -[NSObject release] ()
#4 0x30a002a0 in FlushNamedImage ()
#5 0x30250a26 in CFDictionaryApplyFunction ()
#6 0x30a001a4 in _UISharedImageFlushAll ()
#7 0x30a00738 in +[UIImage(UIImageInternal) _flushCacheOnMemoryWarning:] ()
#8 0x3054dc80 in _nsnote_callback ()
#9 0x3024ea58 in _CFXNotificationPostNotification ()
#10 0x3054b85a in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#11 0x3054dbc0 in -[NSNotificationCenter postNotificationName:object:] ()
#12 0x30a00710 in -[UIApplication _performMemoryWarning] ()
#13 0x30a006a8 in …Run Code Online (Sandbox Code Playgroud) 我提出这个问题因为我已经看到Windows 7 64位能够运行几个32位程序而没有任何问题; 当然,有些运行有问题,有些人拒绝运行.
我不确定为什么有些32位程序可以在64位上运行得很好,但对于我们来说,未来,如果我们将来有128位架构和操作系统发布,那么我们可以在编程方面做些什么呢?我们希望我们的程序能够在不同的位架构中运行吗?或者它不是程序员的工作?
我有一个批处理文件,它将运行一个 C++ 程序并输出到一个带有“>”重定向的文件。该文件将由任务调度程序运行。
我发现当批处理文件从任务调度程序运行时,它声称“访问被拒绝”。批处理文件运行良好,直到它到达 ">" 重定向部分。(我看到整个批处理可以在没有“>”的情况下正常运行)我也尝试以管理员身份运行任务调度程序,但我仍然收到“访问被拒绝”的消息。
有没有解决的办法?
c++ ×4
lua ×2
pointers ×2
architecture ×1
batch-file ×1
callstack ×1
containers ×1
file ×1
function ×1
iphone ×1
libraries ×1
map ×1
permissions ×1
return ×1
scripting ×1
stack-trace ×1
variables ×1
windows-7 ×1
xcode ×1