问题列表 - 第12129页

组织项目并在Makefile中指定目标文件的目录

这是我的两个问题:

  1. 我现在正在学习使用CVS管理我的代码,我只想为我的C++文件,Makefile和bash以及python脚本创建一个存储库,而不是目标文件和可执行文件.所以我在我的项目目录下创建了几个子目录:src,bin,scripts,results和data.我把〜/ myproject/src下的C++文件和Makefile,〜/ myproject/scripts下的bash和python脚本以及〜/ myproject/bin下的对象和可执行文件放在下面.我希望只有src和脚本下的文件才能通过CVS更新.我想知道你们是如何组织你的项目的?只希望遵循一些好习惯

  2. 由于我将我的C++文件和Makefile放入〜/ myproject/src以及对象和可执行文件到〜/ myproject/bin中,我必须在Makefile中指定目录.这就是我在做的事情

Makefile文件:

...
BIN_DIR=/home/myproject/bin/

all: $(BIN_DIR)myexecutable TAGS

TAGS: *.cc *.h
    etags --members --declarations -l c++ *.cc *.h

$(BIN_DIR)myexecutable: $(BIN_DIR)myobject.o
    $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)

Makefile.depend: *.h *.cc Makefile
    $(CXX) -M $(CXXFLAGS) *.cc > Makefile.depend

clean:
    \rm -f $(BIN_DIR)myexecutable $(BIN_DIR)*.o Makefile.depend TAGS`
Run Code Online (Sandbox Code Playgroud)

但是这会给出错误

make:***没有规则来制作目标/home/myproject/bin/myobject.o', needed by/ home/myproject/bin/myexecutable'.

如何在Makefile中的C++文件中为对象和可执行文件指定不同的目录?

感谢致敬!

c++ cvs project-management makefile

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

如何在.NET中检索webbrowser控件的滚动条位置

我尝试使用webBrowser1.Document.Body.ScrollTopwebBrowser1.Document.Body.ScrollLeft,但它们不起作用.他们总是返回0,我无法访问webBrowser1.Document.documentElement.ScrollTop.ScrollLeft.

c#

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

COM互操作(CCW)中的重载 - IDispatch名称包括后缀(_2,_3等)

我有一个包含几个类的托管程序集,这些类有重载方法.我将程序集暴露给COM/IDispatch调用者

[ComVisible(true)]
Run Code Online (Sandbox Code Playgroud)

..还要在装配本身上设置合适的Guid.我没有为COM互操作定义显式接口.这一切都是动态完成的.我运行regasm.exe /codebase托管DLL并将其注册为COM互操作.

当我运行OleView时,我可以看到程序集中各种类的ProgId.但是,浏览这些ProgId并扩展IDispatch节点,这些类没有TypeLib信息.

即便如此,从脚本中,我可以调用接受零参数的方法或接受一个参数的方法.如果还有一个接受多个参数的重载,我不能按名称调用该方法.我得到的错误一直是

Microsoft VBScript runtime error: Wrong number of arguments or invalid property assignment:  <methodname>
Run Code Online (Sandbox Code Playgroud)

由此我了解到COM/IDispatch客户端无法正确解析通过COM互操作公开的对象上的重载方法.


然后我补充说

[ClassInterface(ClassInterfaceType.AutoDual)]
Run Code Online (Sandbox Code Playgroud)

......对每个有关的课程.在regasm.exeDLL之后,我可以在IDispatch节点下看到每个方法的typelib信息.

我发现重载方法会自动获得包含附加后缀的名称.MethodX将在自动生成的类型库组件中公开重载,如MethodX,MethodX_2,MethodX_3等.

我发现通过引用具有这些后缀的方法名称,我可以调用重载方法,尽管不是通用名称.

更有趣的是,如果我然后[ClassInterface(ClassInterfaceType.AutoDual)]从类中删除了,我仍然可以通过这种方式调用重载方法,从而避免 Wrong number of arguments or invalid property assignment错误.

我的问题是:这种行为 - 将数字后缀附加到成员名称 - 稳定吗?记录?可信?

.net com interop typelib regasm

2
推荐指数
1
解决办法
1561
查看次数

在不创建和重新设置副本的情况下更改NSUserDefaults中的对象

我已经存储了字典NSUserDefaults,我需要在这本字典中添加/删除项目.

令我困扰的是,要做到这一点,我必须创建整个字典的可变副本,更改一个元素并用新副本替换整个字典.

copy = [[defaults objectForKey:@"foo"] mutableCopy];
[copy setObject:… forKey:@"bar"];
[defaults setObject:copy forKey:@"foo"];
Run Code Online (Sandbox Code Playgroud)

它涉及对层次结构中更深层次的对象进行更多复制和重新设置.

有没有更好的办法?

我试过使用,[defaults setValue:… forKeyPath:@"foo.bar"]但似乎没有用(对象不可变).

cocoa copy nsdictionary nsuserdefaults

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

如何用cglib双重增强类?

这是代码:

    Patient patient = factory.createPatient();           

    Enhancer enhancer = new Enhancer();
    enhancer.setSuperclass(patient.getClass());
    enhancer.setCallback(new DefaultMethodInterceptor(patient));
    patient = (Patient) enhancer.create();

    assertThat(patient.getFirstName()).isNotNull();


    Enhancer enhancer2 = new Enhancer();
    enhancer2.setSuperclass(patient.getClass());
    enhancer2.setCallback(new DefaultMethodInterceptor(patient));
    patient = (Patient) enhancer2.create();

    assertThat(patient.getFirstName()).isNotNull();
Run Code Online (Sandbox Code Playgroud)

它失败了最后一个断言

net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
...
Caused by: java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.ClassFormatError: Duplicate method name&signature in class file my/package/entity/Patient$$EnhancerByCGLIB$$ca1e6685$$EnhancerByCGLIB$$f52743be
Run Code Online (Sandbox Code Playgroud)

我问这个是因为我想增强Hibernate的实体,但有时候它会自己返回已经增强的实体,而我的第二个增强失败了.我怎么能避免这个?

hibernate cglib

3
推荐指数
1
解决办法
1557
查看次数

从代码隐藏中更改IFrames InnerHtml

我试图在运行时从代码隐藏设置Iframe的HTML.

在我的aspx页面中,我有:

<asp:Button ID="btnChange" runat="server" Text="Change iframe content" 
onclick="btnChange_Click" />

<br />

<iframe id="myIframe" runat="server" />
Run Code Online (Sandbox Code Playgroud)

在后面的代码中:

protected void btnChange_Click(object sender, EventArgs e)
{
    myIframe.InnerHtml = "<h1>Contents Changed</h1>";
}
Run Code Online (Sandbox Code Playgroud)

当我运行它....它回发,但不会改变myIframe内容...我做错了什么?


我需要这样做,因为我实施3D安全到我的结账过程..基本上:

1)客户输入信用卡详细信息2)提交表单,如果需要3d安全,则检查支付网关.如果是,则为银行安全位置生成url以输入信息3)我创建对此URL的POST请求,其包含长安全令牌和一些其他信息.我抓住从这个POST请求返回的HTML,并需要在iFrame中显示它.

下面是文档说要做的事情:

<html>
<head>
<title>Please Authenticate</title>
</head>
<body onload="OnLoadEvent();">
<form name="downloadForm" action="https://mybank.com/vbyv/verify" method="POST">
<input type="hidden" name="PaReq" value="AAABBBBCCCCHHHHHH=">
<input type="hidden" name="TermUrl" value="https:// www. MyWidgits.Com/next.cgi">
<input type="hidden" name="MD" value="200304012012a">
</form>

<script language="Javascript"> <!-- function OnLoadEvent(){ document.downloadForm.target = "ACSframe"; document.downloadForm.submit(); } //--> </script>

<!-- MERCHANT TO FILL IN THEIR OWN BRANDING HERE …
Run Code Online (Sandbox Code Playgroud)

c# asp.net iframe 3d-secure

9
推荐指数
1
解决办法
3万
查看次数

"操作可以使运行时不稳定"和DynamicMethod使用值类型

我试图推广以下IL(来自Reflector):

.method private hidebysig instance void SetValue(valuetype Test.TestFixture/ValueSource& thing, string 'value') cil managed
{
    .maxstack 8
    L_0000: nop 
    L_0001: ldarg.1 
    L_0002: ldarg.2 
    L_0003: call instance void Test.TestFixture/ValueSource::set_Value(string)
    L_0008: nop 
    L_0009: ret 
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用DynamicMethod重现此IL时:

        [Test]
    public void Test_with_DynamicMethod()
    {
        var sourceType = typeof(ValueSource);
        PropertyInfo property = sourceType.GetProperty("Value");

        var setter = property.GetSetMethod(true);
        var method = new DynamicMethod("Set" + property.Name, null, new[] { sourceType.MakeByRefType(), typeof(string) }, true);
        var gen = method.GetILGenerator();

        gen.Emit(OpCodes.Ldarg_1); // Load input to stack
        gen.Emit(OpCodes.Ldarg_2); // Load value to stack …
Run Code Online (Sandbox Code Playgroud)

c# cil

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

是否有任何类型的编程环境在iPhone上运行?

我只是回想起Radio Shack曾经出售袖珍电脑的日子.(许多人以前只有几K的内存.)他们有能力在Pocket计算机上编写小程序.也许它只是怀旧,但我总是认为这很方便.(通过我的记忆迷雾.)有没有像Iphone那样的能力?

编辑:我可以理解不允许像App-store上的GameBoy模拟器一样,它有点像说你的人加载"ROM"并可能让他们遇到麻烦.当你开始从模拟器中获利时,许可证持有者会变得非常小便,只要想想"Bleem"和索尼.索尼埋葬了这些人.我想Javascript总比没有好.沙盒中的Java怎么样?或者,如果他们想要一些他们并不害怕的东西会在那里蚕食市场,那就是BASIC翻译.

iphone

8
推荐指数
1
解决办法
541
查看次数

NHibernate SessionFactory

他们说在NHibernate中构建一个会话工厂是昂贵的,它应该只发生一次.我对此使用单例方法.这是在第一次请求会话时完成的.

我的问题:你是否应该每次都关闭Session工厂?如果是这样,人们什么时候会这样做?

c# nhibernate

4
推荐指数
1
解决办法
5201
查看次数

serialize不包含隐藏字段

我在一个表单上运行序列化,其中隐藏了字段的开头 - 这是一个非常重要的字段,应该发布.有没有办法通过jQuery轻松序列化它还是我应该编写自己的函数?

jquery serialization

66
推荐指数
1
解决办法
4万
查看次数