この質問を見ていただきましてありがとうございます。
早速掲題の件ですが、調べても答えが見えなかったので
質問させていただきます。
やりたいこと
1.メインプログラムからDLLを呼び出す。
2.DLLでは指定された場所のメモ帳から文字列を読み込みメインプログラムに返す。
3.受け取る側はstring(文字列形式)受け取りたい。
※受け取る側はC++かC#の2つの可能性があります。
現状ある動いているソフトを改造して行いたかったのですが、
なかなかうまくいきません。
現状のソフトは数値を読み込むものですが
これを文字列を読み込めるようにしたいです。
C++
1//現状の数列を返すソフト 2 3#include "stdafx.h" 4#include <stdio.h> 5#include <stdlib.h> 6 7#define N 36 // 1行の最大文字数(バイト数) 8 9MEMO_READ int MEMO_READ(void) { 10 FILE *fp; 11 char fname[] = "c:\memotyou.txt"; 12 char str[N]; 13 int ans = 0; 14 fopen_s(&fp, fname, "r");// ファイルを開く 15 if (fp == NULL) { 16 printf("%s file not open!\n", fname); 17 } 18 19 fgets(str, N, fp); 20 ans = atoi(str); 21 22 fclose(fp); // ファイルを閉じる 23 return ans; 24}
C++
1//考察したソフト 2 3#include "stdafx.h" 4#include <stdio.h> 5#include <stdlib.h> 6 7#define N 36 // 1行の最大文字数(バイト数) 8 9MEMO_READ char* MEMO_READ(void) { 10 FILE *fp; 11 char fname[] = "c:\memotyou.txt"; 12 char str[N]; 13 char* ans = 0; 14 fopen_s(&fp, fname, "r");// ファイルを開く 15 if (fp == NULL) { 16 printf("%s file not open!\n", fname); 17 } 18 19 fgets(str, N, fp); 20 ans = str; 21 22 fclose(fp); // ファイルを閉じる 23 return ans; 24}
メモ帳の中身は
以前までは「100000」などの数列でしたが
これからは「1FFE00」などの16進数を
扱うので文字列で読み込みたいと考えていました。
ご質問なのですが、そもそも
こういった文字列を返すことは可能でしょうか?
また、受け取り側がC++とC#では中身が変わってくるのでしょうか?
ご教示の程よろしくお願い致します。
備考
考察側のソフトに関しては、私の勉強不足で
参考書等やサイトを見ながら手探りでやっています。
間違いが多いみたいです。すいません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/02 07:48
2018/02/02 07:50
2018/02/02 07:52
2018/02/02 12:32
2018/02/02 13:19
2018/02/02 15:35
2018/02/02 15:37
2018/02/03 14:54
2018/02/03 16:09
2018/02/06 06:51