我有一个C++ DLL,它必须集成在一个C#项目中.
我想我找到了正确的方法,但是调用dll会给我这个错误:System.BadImageFormatException:试图加载一个格式不正确的程序.(HRESULT异常:0x8007000B)
这是dll中的函数:
extern long FAR PASCAL convert (LPSTR filename);
Run Code Online (Sandbox Code Playgroud)
这是我在C#中使用的代码
namespace Test{
public partial class Form1 : Form
{
[DllImport("convert.dll", SetLastError = true)]
static extern Int32 convert([MarshalAs(UnmanagedType.LPStr)] string filename);
private void button1_Click(object sender, EventArgs e)
{
// generate textfile
string filename = "testfile.txt";
StreamWriter sw = new StreamWriter(filename);
sw.WriteLine("line1");
sw.WriteLine("line2");
sw.Close();
// add checksum
Int32 ret = 0;
try
{
ret = convert(filename);
Console.WriteLine("Result of DLL: {0}", ret.ToString());
}
catch (Exception ex)
{
lbl.Text = ex.ToString();
}
} …Run Code Online (Sandbox Code Playgroud) 我似乎有一个丢失的依赖,但不能找到解决办法......我确信所有的球衣版本是相同的回答在这里.
错误:
SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
SEVERE: Missing dependency for method public abstract javax.ws.rs.core.Response com.service.copy(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition) at parameter at index 0
Run Code Online (Sandbox Code Playgroud)
使用的依赖关系:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-bundle</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>org.jvnet</groupId>
<artifactId>mimepull</artifactId>
<version>1.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
发生错误的代码:
@POST
@Path("copy")
public Response copy(@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?弗兰克,非常感谢
有没有办法获取 pom.xml 文件中定义的版本,以便它可以与 Bitbucket 管道中的变量一起使用?
StackOverflow 上也有类似的问题,但它们主要指的是 Jenkins 和“readMavenPom”,这在 Bitbucket 管道中似乎不可用。
我想用它作为第二步上传到S3的版本标签。
- step:
name: Build and Test
caches:
- maven
script:
- mvn package
artifacts:
- target/myapp-*.jar
- step:
name: Upload to S3
deployment: production
script:
- pipe: atlassian/aws-code-deploy:0.2.10
variables:
AWS_DEFAULT_REGION: $AWS_REGION
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
COMMAND: 'upload'
APPLICATION_NAME: 'myapp'
ZIP_FILE: "target/myapp-*.jar"
S3_BUCKET: 'myapps'
VERSION_LABEL: "myapp-${version}-${BITBUCKET_COMMIT:0:8}"
Run Code Online (Sandbox Code Playgroud) 根据设计,Java 记录不能从另一个对象继承(请参阅为什么 Java 记录不支持继承?)。所以我想知道实现以下目标的最佳方法是什么。
鉴于我的 JSON 数据包含具有一些通用数据 + 独特数据的对象。例如,类型、宽度和高度适用于所有形状,但根据类型,它们可以具有附加字段:
{
"name": "testDrawing",
"shapes": [
{
"type": "shapeA",
"width": 100,
"height": 200,
"label": "test"
},
{
"type": "shapeB",
"width": 100,
"height": 200,
"length": 300
},
{
"type": "shapeC",
"width": 100,
"height": 200,
"url": "www.test.be",
"color": "#FF2233"
}
]
}
Run Code Online (Sandbox Code Playgroud)
在“传统”Java 中,你可以这样做
BaseShape with width and height
ShapeA extends BaseShape with label
ShapeB extends BaseShape with length
ShapeC extends BaseShape with URL and color
Run Code Online (Sandbox Code Playgroud)
但我有点固执,真的很想用记录。
我的解决方案现在看起来像这样:
@JsonIgnoreProperties(ignoreUnknown = …Run Code Online (Sandbox Code Playgroud)