前提・実現したいこと
VisualStudioでUI開発をしています。Cでの組込みプログラミングは齧ったことがありますがOS上のアプリ開発については完全な初心者です。
VisualStudio2017,C++にて作成したDLL(参考URL1,2)内の関数をVB6にて読み込んで使いたいと思っています。
※補足1
2つのexeファイルで共通の変数を持つためのDLLになります
お力添えいただけると幸いです。
発生している問題・エラーメッセージ
作成したDLLを参考URL2のようにVisualStudio2017で作成した別プロジェクトで読み込むことは可能ですが、VB6では読み込むことができません。
参考URL1: http://7ujm.net/VB/AppConversation.html
参考URL2: https://docs.microsoft.com/ja-jp/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=vs-2017
DLLソースコード
C++
1#include "stdafx.h" 2#include <stdio.h> 3#include "xxx.h" 4 5char buff[32768] = ""; 6extern HANDLE hFile; 7#pragma region 8char* GetString(void) { 9 //アドレスを取得 10 LPVOID hMap = MapViewOfFile(hFile, FILE_MAP_WRITE | FILE_MAP_READ, 0, 0, 0); 11 12 strcpy_s(buff, 32768, (char*)hMap);//読み出し 13 UnmapViewOfFile(hMap); 14 return buff; 15} 16 17void SetString(char*str) { 18 //アドレスを取得 19 LPVOID hMap = MapViewOfFile(hFile, FILE_MAP_WRITE | FILE_MAP_READ, 0, 0, 0); 20 strcpy_s((char *)hMap, 32768,str);//書き込み 21 UnmapViewOfFile(hMap); 22} 23#pragma endregion
DLLヘッダ
C++
1#pragma once 2#ifdef XXX_EXPORTS 3#define XXX_API __declspec(dllexport) 4#else 5#define XXX_API __declspec(dllimport) 6#endif 7 8extern "C" XXX_API char* GetString(void); 9extern "C" TELECOMLIB_API void SetString(char*str);
試したこと
RegAsm.exeやRegsvr32.exe でレジスタに登録しようとしましたが"有効なアセンブリファイルではありません"となって登録できませんでした。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。