課題
「LNK2001 外部シンボル xxx 未解決です」のエラーが解消できない。
目的
プロジェクト(ConsoleApplication2)で作成した関数を、別プロジェクト(ConsoleApplication3)で使用したい
やったこと
・上記目的達成のために、
プロジェクト(ConsoleApplication2)を作成し、関数を追加して。
別プロジェクト(ConsoleApplication3)で参照を追加し、コンパイルをしました。
・エラーについて、調査したところ、コンパイルは通っているが、リンクで失敗しているエラーであり、関数宣言しているが、実体がないためにでるエラーのようです。ソースを確認すると、宣言もあり、実体もあります。
そのため、ほかに、visual studioでプロジェクトの設定が足りないのではないかと考えていますが、調べても何が足りないのかわかりません。
環境
・visual studio 2019
エラー内容
LNK2001 外部シンボル readIni2 は未解決です
設定
・以下添付ファイルのように、プロジェクトの参照を追加しています。
ソース
プロジェクト(ヘッダー)名:ConsoleApplication2
C
1#pragma once 2 3#define CONFIG_FILE_NAME ".\config.ini" 4#define DEBUG_CONFIG_FILE_NAME "C:\test\testConfig.ini" 5#define SECTION_NAME_DATABASE "database" 6#define KEY_NAME_HOST "host" 7#define KEY_NAME_PORT "port" 8#define KEY_NAME_NAME "name" 9#define KEY_NAME_USER "user" 10#define KEY_NAME_PASS "pass" 11#define KEY_NAME_DIR "dir" 12#define READ_SIZE (256) 13 14extern "C" { 15 bool readIni2(); 16}
プロジェクト(ソース)名:ConsoleApplication2
C
1#include "test.h" 2#include <windows.h> 3#include <stdio.h> 4 5// ------------------------------- 6// 関数名:configファイル読み込み 7// ------------------------------- 8bool readIni2() { 9 TCHAR sc_buf[READ_SIZE]; 10 11 DWORD ret; 12 ret = GetPrivateProfileString(TEXT(SECTION_NAME_DATABASE), TEXT(KEY_NAME_HOST), TEXT(""), sc_buf, (READ_SIZE - 1), TEXT(DEBUG_CONFIG_FILE_NAME)); 13 14 printf("読み込み結果: %d\n", ret); 15 printf("読み込み結果: %ls\n", sc_buf); 16 17 ret = GetPrivateProfileString(TEXT(SECTION_NAME_DATABASE), TEXT(KEY_NAME_PORT), TEXT(""), sc_buf, (READ_SIZE - 1), TEXT(DEBUG_CONFIG_FILE_NAME)); 18 printf("読み込み結果: %ls\n", sc_buf); 19 20 ret = GetPrivateProfileString(TEXT(SECTION_NAME_DATABASE), TEXT(KEY_NAME_NAME), TEXT(""), sc_buf, (READ_SIZE - 1), TEXT(DEBUG_CONFIG_FILE_NAME)); 21 printf("読み込み結果: %ls\n", sc_buf); 22 23 ret = GetPrivateProfileString(TEXT(SECTION_NAME_DATABASE), TEXT(KEY_NAME_USER), TEXT(""), sc_buf, (READ_SIZE - 1), TEXT(DEBUG_CONFIG_FILE_NAME)); 24 printf("読み込み結果: %ls\n", sc_buf); 25 26 ret = GetPrivateProfileString(TEXT(SECTION_NAME_DATABASE), TEXT(KEY_NAME_PASS), TEXT(""), sc_buf, (READ_SIZE - 1), TEXT(DEBUG_CONFIG_FILE_NAME)); 27 printf("読み込み結果: %ls\n", sc_buf); 28 29 ret = GetPrivateProfileString(TEXT(SECTION_NAME_DATABASE), TEXT(KEY_NAME_DIR), TEXT(""), sc_buf, (READ_SIZE - 1), TEXT(DEBUG_CONFIG_FILE_NAME)); 30 printf("読み込み結果: %ls\n", sc_buf); 31 32 33 return true; 34}
プロジェクト(ソース)名:ConsoleApplication3
C++
1#include <iostream> 2 3#include "../ConsoleApplication2/test.h" 4 5int main() 6{ 7 std::cout << "Hello World!\n"; 8 9 readIni2(); 10}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/09 10:25