小编Jen*_*ger的帖子

AppDomain.AppendPrivatePath 替代方案?

我主要通过谷歌阅读了很多东西(不是在这里),但没有找到可以回答我的问题的东西,所以我在这里问。

我确实想添加到“某些东西”(AppDomain我认为),以便我的代码可以在运行时解析如何Assembly.CreateInstance访问我的应用程序编译文件夹之外的特定 DLL。

我真的觉得AppDomain是要使用的类,AppendPrivatePath听起来像要使用的方法,但它现在“已过时”... msdn 建议使用 PrivateBinPath 但据我所知,我必须创建一个新的 AppDomain 并通过我的测试,我感觉Assembly.CreateInstance不在我的新 AppDomain 中寻找引用

一些代码如:

AppDomainSetup domaininfo = new AppDomainSetup();
domaininfo.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
domaininfo.PrivateBinPath = "D:\\.....\\bin\\Debug\\";

Evidence adevidence = AppDomain.CurrentDomain.Evidence;

AppDomain newDomain = AppDomain.CreateDomain("FrameworkDomain", adevidence, domaininfo);
Run Code Online (Sandbox Code Playgroud)

有效,但是当我尝试时CreateInstance,我得到了一个 TargetInitation 异常

我也尝试过:

Thread.GetDomain().SetupInformation.PrivateBinPath = "D:\\.....\\bin\\Debug\\";
Run Code Online (Sandbox Code Playgroud)

这听起来“特别”,但对我来说很好,但它不起作用......

我真的觉得我必须给出D:\\.....\\bin\\Debug\\当前 AppDomain 的路径,但它不再可能,因为AppendPrivatePath已经过时了......

有什么帮助吗?

c# assemblies appdomain

5
推荐指数
1
解决办法
5432
查看次数

如何在C程序中打印堆栈的内容?

正如标题所说,我想在我的C程序中打印堆栈的内容.

以下是我采取的步骤:

  • 我做了一个简单的汇编(helper.s)文件,其中包含一个返回我的ebp寄存器地址的函数和一个返回我的esp寄存器地址的函数

    .globl get_esp
    
    get_esp:
        movl %esp, %eax
        ret
    # get_ebp is defined similarly, and included in the .globl section
    
    Run Code Online (Sandbox Code Playgroud)
  • 我叫get_esp ()get_ebp ()从我的C程序功能(fpC = get_esp ();其中FPC是一个int)
  • 我(成功地,我认为)打印了我的esp和ebp寄存器的地址(fprintf (stderr, "%x", fcP);)
  • 我尝试了,但未能打印出我的esp寄存器的内容.(我想fprintf (sderr, "%d", *fcP);fprintf (sderr, "%x", *((int *)fcP));其他方法中).处理此行时,我的程序在运行时遇到分段错误.

我究竟做错了什么?

编辑:这必须通过调用这些汇编函数来获得堆栈指针来完成.EDIT2:这是家庭作业.

c x86 assembly pointers

5
推荐指数
1
解决办法
6982
查看次数

如何将汇编版本号1增加1

我将AssemblyVersion属性设置为: [assembly: AssemblyVersion("1.0.0.*")]

它随着装配和时间的变化而增加.现在它是:{1.0.0.20042}如果我不更改程序集内的cs文件,它不会增加.但是如果我在这个程序集中更改了一个类文件,那么版本只会增加一个.如果我没有误解这些文章,它的增加取决于时间.但我想设置这个增量取决于内部版本号.

有没有办法从这个版本号学习内部版本号或设置它的增量1?

versioning assemblies visual-studio build-numbers

5
推荐指数
1
解决办法
2089
查看次数

Java问题中的工厂方法模式示例

我正在尝试用Java创建一个非常简单的Factory Method设计模式示例.我真的不懂Java,我不熟悉编程,但我需要提出一个在java中实现的基本FactoryMethod示例.以下是我提出的建议.我确定有很多错误,我显然缺少一些构造函数,而且我对抽象类和接口感到困惑.你能指出我的错误并纠正我的代码以及解释吗?提前感谢您的时间和帮助.

public abstract class Person 
{   
    public void createPerson(){ }
}

public class Male extends Person 
{   
    @Override
    public void createPerson() 
    {
        System.out.print("a man has been created");
    }
}

public class Female extends Person 
{   
    @Override
    public void createPerson() 
    {
        System.out.print("a woman has been created");
    }
}

public class PersonFactory
{
     public static Person makePerson(String x) // I have no Person constructor in
     {                                         // the actual abstract person class so 
         if(x=="male")                         // is this valid here?
         { 
             Male …
Run Code Online (Sandbox Code Playgroud)

java design-patterns factory

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

有没有办法强制PMULHRSW将0x8000视为1.0而不是-1.0?

要处理8位像素,在不丢失信息的情况下执行伽马校正等操作,我们通常会对值进行上采样,以16位或其他方式工作,然后将它们下采样到8位.

现在,这对我来说是一个新的领域,请原谅不正确的术语等.

根据我的需要,我选择在"非标准"Q15中工作,其中我只使用范围的上半部分(0.0-1.0),而0x8000代表1.0而不是-1.0.这使得用C计算事物变得更加容易.

但我遇到了SSSE3的问题.它有PMULHRSW指令乘以Q15数字,但它使用Q15的"标准"范围是[-1,1-2 - 19],所以乘以(我的)0x8000(1.0)乘以0x4000(0.5)给出0xC000( - 0.5),因为它认为0x8000是-1.这很烦人.

我究竟做错了什么?我应该将像素值保持在0000-7FFF范围内吗?难道这种失败的目的是它是一种定点格式吗?有没有解决的办法?也许有些诡计?

在Q15上是否有某种明确的论文讨论了所有这些?

assembly sse fixed-point image-processing

5
推荐指数
1
解决办法
435
查看次数

即使窗口存在,FindWindow在MASM32程序中返回零

我正在尝试用汇编编写程序,我需要的第一件事就是特定进程主窗口的句柄.我一直试图用FindWindow来获取它,但到目前为止没有运气; FindWindow显然保持零返回.任何人都可以指出我在这里缺少什么?谢谢.

.486
.model flat, stdcall
option casemap :none
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.data
    NtpTitle    db  "Untitled - Notepad",0
    MsgNoNtp    db  "Notepad not found.",0
    MsgNtp      db  "Found Notepad.",0
    NullString  db  0
    hWndNtp     dd  0

.code
start:
    invoke FindWindow, offset NullString, offset NtpTitle
    mov hWndNtp, eax
    jz noNotepad
    invoke MessageBox, 0, offset MsgNtp, 0, 40h
    invoke ExitProcess, 0

noNotepad:
    invoke MessageBox, 0, offset MsgNoNtp, 0, 10h
    invoke ExitProcess, 1

end start
Run Code Online (Sandbox Code Playgroud)

x86 assembly winapi masm masm32

5
推荐指数
1
解决办法
540
查看次数

CBM Program Studio汇编程序语法

我正在努力学习CBM Program Studio.但我不能让宏为我工作.在宏观上,代码还可以.但是当我添加宏部分时,它在第7行给出了"无匹配结束定义".

任何的想法?

        *=$c000 ; sys 49152

        ; set screen colors to black 
        lda #$00
        sta $d020
        sta $d021

defm    waitmacro ;akumulatörü hac?l?yor   
        TYA
mloop   DEY
        BNE mloop
        TAY     
        endm waitmacro

        ;color bars
        LDX #$FF
loop    LDY #$07
        STY $d020

        waitmacro

        INY
        STY $d020

        waitmacro

        DEX
        BNE loop
        RTS
Run Code Online (Sandbox Code Playgroud)

assembly c64 6502 6510

5
推荐指数
1
解决办法
916
查看次数

maven程序集出错:单个目标:写入8192字节的请求超出标头中的大小

这个项目成功编译和打包,但程序集不起作用.这是pom.xml片段:

        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <finalName>appminer_hive-${version}</finalName>
                <descriptors>
                    <descriptor>src/main/assembly/deploy-packaging.xml</descriptor>
                </descriptors>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

这是deploy-packaging.xml:

 <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
  <id>deploy</id>
  <baseDirectory>etl/appminer/hive</baseDirectory>
  <formats>
    <format>tar.gz</format>
  </formats>
<fileSets>
    <fileSet>
        <directory>${basedir}/lib</directory>
        <outputDirectory>lib</outputDirectory>
    </fileSet>
  <fileSet>
        <directory>${basedir}</directory>
        <outputDirectory></outputDirectory>
    </fileSet>
</fileSets>
<files>
<file>
    <source>${basedir}/target/${project.build.finalName}.jar</source>
    <outputDirectory>libs</outputDirectory>
</file>
  </files>
 </assembly>
Run Code Online (Sandbox Code Playgroud)

这是输出:

Results :

  [INFO] Building Apps Classifier Hive Workflow
  [INFO]    task-segment: [assembly:single]
  [INFO] ------------------------------------------------------------------------
  [INFO] [assembly:single {execution: default-cli}]
  [INFO] Reading assembly descriptor: src/main/assembly/deploy-packaging.xml
  [INFO] hive/lib/ already added, skipping
  [INFO] Building tar : /shared/git2/etl/appminer/hive/target/appminer_hive-1.0-deploy.tar.gz
  [INFO] hive/lib/ already added, skipping
  [INFO] ------------------------------------------------------------------------
  [ERROR] BUILD …
Run Code Online (Sandbox Code Playgroud)

maven maven-assembly-plugin

5
推荐指数
0
解决办法
2398
查看次数

如何在c ++中创建代码emmiter

我正在尝试用c ++创建一个代码emmiter,以便学习如何创建一个模拟器,但是我很难让动态汇编程序工作:

unsigned char program[] = {0x90,  0x90, 0xC3 }; //nop; nop; ret
void (*p)(void) =  (void(*)())     &program;
p();
Run Code Online (Sandbox Code Playgroud)

总是返回访问冲突.....

我正在使用visual studio 2012 C++ win32控制台应用程序

谢谢.

c++

5
推荐指数
1
解决办法
147
查看次数

使用ClassLoader定义同一个类两次

我正在开发一个项目,它涉及读取给定JAR文件中的所有类,修改其中一些类(在字节码级别,使用ASM),以及创建ClassLoader这些修改过的类.目前,在修改类之后,我创建了一个可见的ClassLoader类的自定义实例defineMethod(String, byte[]).

这是自定义的代码ClassLoader(它是一个嵌套类):

private static class ExposingClassLoader extends ClassLoader {

    private ExposingClassLoader(JarFile jar) throws MalformedURLException {
        super(new URLClassLoader(new URL[] { new URL("jar:" + new File(jar.getName()).toURI().toURL() + "!/") }));
    }

    private void defineClass(String name, byte[] data) {
        defineClass(name, data, 0, data.length);
    }
}
Run Code Online (Sandbox Code Playgroud)

你可能已经注意到我创建了父类加载器了URLClassLoader.当我构造自定义类加载器时,我将URLClassLoader引用包含未修改的类文件的JAR.修改了一些类文件后,我遍历它们并defineMethod(String, byte[])为每个文件调用.一些修改的类彼此依赖,即,类A可以是类B的超类,或类C可以实现类D,或类E可以包含对类F的引用,等等.

对于我的测试,我使用两个类.第一个是命名的fn,第二个是命名的fi,并且fi扩展fn并包含多个类型的字段fi.这两个类都存在于用于构造的JAR文件中ClassLoader,唯一的区别是它们未经修改.出于某种原因,如果我定义类fn它工作正常(它不应该?该类fn …

java classloader

5
推荐指数
1
解决办法
1326
查看次数