小编Fen*_*ton的帖子

在C中存储对lua函数的引用

我有一个用C++实现的基本事件处理程序.我的应用程序中还有一个嵌入式Lua解释器,我需要与事件管理器进行交互.最终目标是能够拥有一个事件处理程序,它将在触发事件时执行c ++和Lua函数.

我的问题是我无法想出一种简单的方法来存储我的C++代码中的lua函数的引用.我知道如何从c(使用lua_getgloballua_pcall)执行Lua函数,但我更喜欢存储对函数本身的引用,以便我可以直接将Lua函数传递给registerListener

注意可以假设userdata NULL适用于所有Lua Listener.

这是我的代码:

EventManager.h

#include <string>
#include <map>
#include <vector>

using namespace std;

typedef void (*fptr)(const void* userdata, va_list args);
typedef pair<fptr, void*> Listener;
typedef map<string, vector<Listener> > CallbackMap;

class EventManager {
private:
    friend ostream& operator<<(ostream& out, const EventManager& r);

    CallbackMap callbacks;
    static EventManager* emInstance;
    EventManager() {
        callbacks = CallbackMap();
    }
    ~EventManager() {
    }
public:
    static EventManager* Instance();
    bool RegisterEvent(string const& name);
    void RegisterListener(string const &event_name, fptr callback,
            void* …
Run Code Online (Sandbox Code Playgroud)

c++ lua event-handling

7
推荐指数
3
解决办法
2283
查看次数

手动在datagridview上添加行

我在datagridview上插入了一个复选框列和文本框列.如何在文本框列上手动添加行.

它应该是这样的:

checkbox | textbox
............................
checkbox | item1
checkbox | item2
checkbox | item3
checkbox | item4
Run Code Online (Sandbox Code Playgroud)

这是datagridview上复选框和文本框的代码

public void loadgrid()
{
    DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn();
    CheckBox chk = new CheckBox();
    checkboxColumn.Width = 25;
    dataGridView1.Columns.Add(checkboxColumn);

    DataGridViewTextBoxColumn textboxcolumn = new DataGridViewTextBoxColumn();
    TextBox txt = new TextBox();
    textboxcolumn.Width = 150;
    dataGridView1.Columns.Add(textboxcolumn);     
}
Run Code Online (Sandbox Code Playgroud)

c# winforms

7
推荐指数
2
解决办法
3万
查看次数

从RDC管理器导出连接配置

我正在寻找一种方法来导出在RDC [远程桌面连接]管理器中配置的连接组[.RDG文件].有没有办法做到这一点?

我无法抓住文件系统中的文件.

remote-desktop

7
推荐指数
3
解决办法
6万
查看次数

AJAX轮询问题 - 阻止或频繁?

我有一个依赖于非常"实时"数据的Web应用程序 - 所以如果有变化,它需要每1秒更新一次.

我想知道以下解决方案的优点和缺点是什么.

解决方案1 ​​ - 轮询很多

所以每1秒,我向服务器发送一个请求并获取一些数据.一旦我获得了数据,我会等待1秒再重复一遍.如果州改变并采取适当的行动,我会检测到客户端.

解决方案2 - 阻止很多

所以我向服务器发起一个请求,在30秒后会超时.服务器通过每秒检查一次来监视服务器上的数据.如果服务器注意到数据已更改,则会将数据发送回客户端,客户端会采取相应的操作.

脚本

实质上,数据的大小相当小,但是根据实时事件以随机间隔进行更改.问题是,Web UI将在2,000个实例的区域中运行,因此我每秒有2,000个来自UI的请求,或者我有2,000个长时间运行的请求,最多需要30秒?

非常感谢帮助和建议,特别是如果您在类似的卷下使用AJAX请求.

ajax polling ajax-polling

6
推荐指数
1
解决办法
391
查看次数

ASP.NET Web-API不序列化readonly属性

我将API方法从标准MVC操作迁移到新的asp.net Web-API beta,突然只读属性不再序列化(都返回JSON).这是预期的行为吗?

编辑:添加代码示例

我有通过nuget包引用的Newtonsoft.Json 4.0.8和System.Json 4.0

        public IQueryable<Car> Gets()
        {
             return _carRepository.GetCars();
        }

        public class Car
        {
            public IEnumerable<Photo> Photos
            {
                get { return _photos; }
            }

            public string PreviewImageUrl // No longer serialized
            {
                get
                {
                     var mainImage = Photos.FirstOrDefault(o => o.IsMainPreview) Photos.FirstOrDefault();
                        return mainImage != null ? mainImage.Url : (string.Empty);
                    }
                }
             }
         }
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-web-api

6
推荐指数
1
解决办法
5059
查看次数

如何在TypeScript AMD模块中定义依赖模块

如何使用TypeScript在AMD模块中定义依赖模块,包括例如jQuery和下划线.我使用JavaScript,例如,像这样:

define('moduleA',
    ['jquery', 'underscore'], function ($, _) {
    }
});
Run Code Online (Sandbox Code Playgroud)

如何做到这一点,以便TypeScript编译器生成此代码.

typescript

6
推荐指数
1
解决办法
2246
查看次数

TypeScript tsc>消息的重定向

我刚刚将TypeScript安装为Node.js软件包,令我惊讶的是它似乎正在直接运行.但我无法找到拦截它可能产生的任何消息的方法.使用具有故意错误的greeter.ts文件执行以下操作

tsc greeter.ts > err.log
Run Code Online (Sandbox Code Playgroud)

确认没有重定向.有人知道这方面的方法吗?我想这样做,所以我可以在编辑器中找到错误.

顺便说一句,我注意到tsc只接受小写文件名.做tsc GREETER.TS给错误读取文件"GREETER.TS":找不到文件.

回应Sohnee的评论:不,tsc肯定会发出错误消息,只是我不能重定向它.我的greeter.ts文件,故意错误是:

function greeter(person) {
  return "Hello, " + person;
}
var user = "Jane User";
undeclared
document.body.innerHTML = greeter(user);
Run Code Online (Sandbox Code Playgroud)

从OS shell我得到以下内容.

C:\K_F90\F90WX\BOOKS\THENOD~1>tsc greeter.ts
C:/K_F90/F90WX/BOOKS/THENOD~1/greeter.ts(7,0): The name 'undeclared' does not exist in the current scope
Run Code Online (Sandbox Code Playgroud)

但是当我尝试重定向时,我得到:

C:\K_F90\F90WX\BOOKS\THENOD~1>tsc greeter.ts > err.log
C:/K_F90/F90WX/BOOKS/THENOD~1/greeter.ts(7,0): The name 'undeclared' does not exist in the current scope
C:\K_F90\F90WX\BOOKS\THENOD~1>type err.log
C:\K_F90\F90WX\BOOKS\THENOD~1>
Run Code Online (Sandbox Code Playgroud)

我觉得很确定; 正在发出错误消息但未被重定向到err.log,该文件为空.

typescript tsc

6
推荐指数
1
解决办法
785
查看次数

Visual Studio 2012 Express上的TypeScript

我一直无法使用Visual Studio 2012的TypeScript工作.有谁知道它是否只会安装在VS2012的完整版上?(我有VS 2012 Express for Web和VS 2012 Express for Desktop).

我已经尝试了我在这个网站上找到的所有建议,但仍然没有运气.VS和TypeScript都安装正确,但我无法在VS 2012 Express for Web中的任何位置看到TypeScript项目或新项目.

visual-studio-2012 typescript

6
推荐指数
1
解决办法
3881
查看次数

如何配置Visual Studio以将所有TypeScript文件合并到一个JavaScript文件中?

使用tsc命令就像运行一样简单:

tsc --out all.js js/*.ts
Run Code Online (Sandbox Code Playgroud)

在构建项目时,如何配置Visual Studio来执行此操作?

visual-studio-2012 typescript tsc

6
推荐指数
1
解决办法
3426
查看次数

编译的JavaScript文件未出现在Visual Studio项目中

我正在使用TypeScript 0.9.5,当我添加TypeScript文件时,我不再在Visual Studio解决方案资源管理器中看到已编译的JavaScript文件或生成的源映射.

我的JavaScript文件去了哪里?

visual-studio typescript

6
推荐指数
1
解决办法
1660
查看次数