小编DP_*_*DP_的帖子

在命名管道上发送文本会导致Delphi应用程序崩溃

我有一个Delphi应用程序,它通过调用将一段文本发送到命名管道

SendMessageToNamedPipe(hPipe, CurMsg);
Run Code Online (Sandbox Code Playgroud)

它适用于某些消息,但发送其他文本会导致应用程序崩溃.

我所知道的正常和"崩溃"消息之间的唯一区别是崩溃消息包含大量的西里尔字符.

我应该如何对它们进行编码,以便正确执行上述调用?

更新1:这是实施SendMessageToNamedPipe.

procedure SendMessageToNamedPipe(hPipe:THandle; msg:string);
  const
    OUT_BUF_SIZE = 100;
  var
    dwWrite : DWORD;
    lpNumberOfBytesWritten : LongBool;
    utf8String : RawByteString;
    sendBuf: array[0..OUT_BUF_SIZE] of WideChar;
  begin
    utf8String := UTF8Encode(msg);

    sendBuf[0] := #0;
    lstrcatw(sendBuf, PChar(msg));

    lpNumberOfBytesWritten := WriteFile(hPipe, sendBuf, OUT_BUF_SIZE, dwWrite, NIL);

    if not lpNumberOfBytesWritten then
    begin
      OutputDebugString(PChar('Sending error: ' + SysErrorMessage(GetLastError)));
    end
    else
    begin
      OutputDebugString(PChar('Message sent, dwWrite: ' + IntToStr(dwWrite)));
    end;
  end;
Run Code Online (Sandbox Code Playgroud)

更新2:该功能的版本,似乎工作.

procedure SendMessageToNamedPipe(hPipe:THandle; msg:string);
const
    OUT_BUF_SIZE = 200;
var
  dwWrite : …
Run Code Online (Sandbox Code Playgroud)

delphi named-pipes delphi-2009

0
推荐指数
1
解决办法
1340
查看次数

JSF中每个用户/会话的唯一标识符

我有一个JSF应用程序,并希望分配给在浏览器中打开它的每个用户一个唯一的标识符.

为了实现它,我想使用全局long变量并在新用户连接到Web应用程序时递增它.

我有两个问题:

1)我应该在哪里(以哪种方法)放置增量代码?

2)如何在Web应用程序的Java类中访问该全局变量?

java jsf jsf-2

0
推荐指数
1
解决办法
518
查看次数

如何修复Django管理员的样子?

我的Django应用程序的管理员如下所示.

Django管理员

显然,一些样式表已丢失和/或损坏.

问题:

  1. 哪些样式表用于以默认方式呈现Django管理员?
  2. 我在哪里可以找到它们?

更新1(10.06.2013 00:18 MSK):manage.py collectstatic在以下输出中执行结果,但未更改管理员的外观.

D:\dev\history-site>C:\Python25\python manage.py collectstatic

You have requested to collect static files at the destination
location as specified in your settings.

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes
Copying 'C:\Python25\lib\site-packages\django\contrib\admin\static\admin\css\bas
e.css'
Copying 'C:\Python25\lib\site-packages\django\contrib\admin\static\admin\css\cha
ngelists.css'
Copying 'C:\Python25\lib\site-packages\django\contrib\admin\static\admin\css\das
hboard.css'
Copying 'C:\Python25\lib\site-packages\django\contrib\admin\static\admin\css\for
ms.css'
Copying 'C:\Python25\lib\site-packages\django\contrib\admin\static\admin\css\ie.
css'
Copying 'C:\Python25\lib\site-packages\django\contrib\admin\static\admin\css\log
in.css'
Copying 'C:\Python25\lib\site-packages\django\contrib\admin\static\admin\css\rtl
.css'
Copying 'C:\Python25\lib\site-packages\django\contrib\admin\static\admin\css\wid
gets.css'
Copying 'C:\Python25\lib\site-packages\django\contrib\admin\static\admin\img\cha
ngelist-bg.gif'
Copying …
Run Code Online (Sandbox Code Playgroud)

python django django-admin

0
推荐指数
1
解决办法
1241
查看次数

如何使JTable填满整个可用空间?

我想创建一个带有表的面板,它填满了整个可用空间.

我使用以下代码执行此操作:

public class MyFrame extends JFrame {
    public EconomyFrame() throws HeadlessException {
        super("...");

        final JTabbedPane tabbedPane = new JTabbedPane();

        add(tabbedPane);

        final JPanel companiesPanel = new JPanel();

        final CompaniesTableModel companiesModel = new CompaniesTableModel
                (ApplicationStateSingleton.INSTANCE.getPersistence().getCompanies());

        final JTable companiesTable = new JTable(companiesModel);

        ApplicationStateSingleton.INSTANCE.getEventBus().subscribeToPropertyChanges(companiesModel);

        companiesPanel.add(new JScrollPane(companiesTable));

        tabbedPane.addTab("Companies", companiesPanel);
    }
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为当我调整框架大小时,表格只填充部分可用空间(请参见下面的屏幕截图).

我该如何修复(使表格填满整个可用空间)?

截图1

截图2

java swing jtable layout-manager preferredsize

0
推荐指数
2
解决办法
3903
查看次数

为什么我得到"没有找到汇编描述符." 构建此项目时出错?

我有一个用Kotlin写的小项目.当我运行时clean compile assembly:single install,我收到以下错误消息:

Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2-beta-5:single 
(default-cli) on project alma-econsim: Error reading assemblies: No assembly 
descriptors found. -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

jar-with-dependencies.xml位于src/main/assembly中,并在pom.xml中引用,如下所示:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-5</version>
    <executions>
        <execution>
            <id>assembly</id>
            <goals>
                <goal>single</goal>
            </goals>
            <phase>package</phase>
            <configuration>
                <descriptors>
                    <descriptor>src/main/assembly/jar-with-dependencies.xml</descriptor>
                </descriptors>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

但我仍然得到错误.我如何更正我的项目,以便能够将其打包为具有依赖关系的jar?

java maven-3 maven maven-assembly-plugin kotlin

0
推荐指数
1
解决办法
7011
查看次数

如何在 IntelliJ Idea 中调试 NodeJS 应用程序?

我有一个 NodeJS 项目,其package.json文件包含以下几行:

"scripts": {
  [...]
  "start:dev": "cross-env NODE_ENV=local supervisor --watch src -- -r '@babel/register' src/server/index.js",
  [...]
}
Run Code Online (Sandbox Code Playgroud)

我可以使用在命令行中启动程序npm run start:dev

现在我想调试一些代码。为此,我使用以下参数在 Idea 中创建了一个 NodeJS 运行配置(粘贴cross-env NODE_ENV=local supervisor --watch src -- -r '@babel/register' src/server/index.jsNode Parameters)。

运行/调试配置对话框

当我运行它时,我收到以下错误:

/usr/bin/node cross-env NODE_ENV=local supervisor --watch src -- -r '@babel/register' src/server/index.js
Debugger listening on ws://127.0.0.1:43392/5a2c1e8e-a508-4578-8eb0-2bc4f4a63b30
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
Waiting for the debugger to disconnect...
internal/modules/cjs/loader.js:775
    throw err;
    ^

Error: Cannot find module '/home/JIT/d.pisarenko/Development/Repositories/git/myproject/cross-env'
    at …
Run Code Online (Sandbox Code Playgroud)

javascript debugging intellij-idea node.js

0
推荐指数
1
解决办法
2019
查看次数

如何在 Clojure 中创建一个空集合?

我正在尝试使用 Clojure 对一组特定的数据进行建模

  • 没有很好地定义(我正在为这些数据找出最佳结构,同时使用它们)和
  • 逐渐被完善(当我第一次声明某个对象时,我对它知之甚少,因为我正在做这个项目,我对它的了解越来越多,并想在 Clojure 中捕获它)。

一开始,我希望那段复杂的数据只是一个空集合。在这一点上,我不在乎它是列表、集合还是向量。

(ns clojure-playground.core
  (:gen-class))

(def my-complex-object (hash-set))
Run Code Online (Sandbox Code Playgroud)

当我编译这个文件并进入(my-complex-object)REPL 时,出现错误。

  • (def my-complex-object ()),
  • (def my-complex-object []),
  • (def my-complex-object (list)), 和
  • (def my-complex-object '(list)).

如何绑定my-complex-object到空集合?

clojure

0
推荐指数
1
解决办法
109
查看次数

如何在 Clojure 测试中测试预期异常的消息?

我有以下 Clojure 代码:

(defn is-valid-lang
  [lang]
  (.contains (list "ru" "en" "de") lang))

(defn s
  [txt]
  {
   :desc txt
   :lang "ru"
   })

(defn s
  [txt lang]
  (if-not (is-valid-lang lang)
    (throw (.IllegalArgumentException (format "'%s' is an invalid language." lang)))
    {
     :desc txt
     :lang lang
     }
    )
  )
Run Code Online (Sandbox Code Playgroud)

我想编写一个测试来验证s抛出的异常的消息,如果lang无效。

我是这样写的:

(deftest s-lang-invalid-lang-test
  (is
    (thrown-with-msg?
      IllegalArgumentException
      #"'invalid-language' is an invalid language."
      (s "something" "invalid-language")
      )
    )
  )
Run Code Online (Sandbox Code Playgroud)

由于以下错误,测试失败:

error {
 :cause "No matching field found: IllegalArgumentException for class java.lang.String"
 :via …
Run Code Online (Sandbox Code Playgroud)

unit-testing clojure

0
推荐指数
1
解决办法
115
查看次数

在 Clojure 中映射列表时,如何将其与其他文本穿插?

想象一下我有一个像

(def nodes ["a", "b", "c"])
Run Code Online (Sandbox Code Playgroud)

我想转换nodes成以下字符串:

a -> b -> c
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

(apply str (mapcat
             (fn [node]
               (str node " -> ")
               )
             nodes
             )
       )
Run Code Online (Sandbox Code Playgroud)

结果是

"a -> b -> c -> "
Run Code Online (Sandbox Code Playgroud)

我现在可以检查结果字符串是否以 结尾,->如果是,则删除最后一个->.

但这似乎不是很优雅。在 Clojure 中执行此操作的正确方法是什么?

更新 1:

(transduce
  (fn [rf]
    (fn
      ([] "")
      ([result] result)
      ([result input] (str
                        result
                        "->"
                        input))
      )
    )
   cat
   ""
   nodes
  )
Run Code Online (Sandbox Code Playgroud)

结果是

"->a->b->c"

Run Code Online (Sandbox Code Playgroud)

clojure

0
推荐指数
1
解决办法
117
查看次数