「みんな教えて! 選手権!!」開催のお知らせ

Windows10のVS2022のForm AppからC++のコンソールappのLibraryの
関数の呼び出しに関する質問です。
Q1)関数fnStaticLib1()を実行しますが下記のエラーが発生します。
//Syatem.DllNotFoundException:'DLL'StaticLib1.dll'を読み込めず。
このエラーを無くす方法についてお教え頂けますと大変有難いです。

以下のコードをご覧ください。
//Form1.cs======
using System;
.......
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace FormsApp_cpp
{
public partial class Form1 : Form
{
[DllImport("StaticLib1.dll")]
static extern void fnStaticLib1();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
fnStaticLib1();
//Syatem.DllNotFoundException:'DLL'StaticLib1.dll'を読み込めず。
}
}
}

//framework.h===============
#pragma once
#define WIN32_LEAN_AND_MEAN
extern "C"
{
__declspec(dllexport) void __stdcall fnStaticLib1();
}

// StaticLib1.cpp ===========
//スタティック--->ダイナミックに変更 at prppaty of project|
#include "pch.h"
#include "framework.h"
#include <stdio.h>
#include <iostream>
void __stdcall fnStaticLib1()
{
//printf("AAA");
std::cout << "Cの関数fnStaticLib1() " << std::endl;
getchar();
}

以上宜しくお願いします。

A 回答 (1件)

分からないけど今思いついたのは↓です


1. x86/x64 混成
2. 実は export できてない
https://github.com/lucasg/Dependencies
3. dll の場所
https://docs.microsoft.com/en-us/windows/win32/d …
    • good
    • 0
この回答へのお礼

御世話になります。
>x86/x64 混成
<ーーDebug: x86とC#およびC++もやっていますが、
Build時にAny CPUの表示が出るので、このほかに設定項目が
あるのでは無いかと心配しています。
DLLファイルはできていますが、場所の関係で読み込めないかとも考えています。
https://docs.microsoft.com/en-us/windows/win32/d …
<ーー参考にします。
感謝!!!!

お礼日時:2022/02/04 14:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報