[问题]DLL在VC2017 Debug模式下抓不到指定档案

楼主: commandoEX (卡曼都)   2018-09-12 01:03:28
开发平台(Platform): (Ex: Win10, Linux, ...)
windows 10 1803
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Visual Studio 2017 社群版(15.8.3)
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)

问题(Question):
小弟我主要是写delphi的,几乎没碰过c++(更之前只有稍微碰过C/VB)
今天BOSS想要把实验室中某个程式给其他老师用
因为外面根本没啥人用delphi所以叫我改写成dll给其他实验室的人呼叫
dll本身只有一个程式,没有input参数也没output参数
只读预定义的设定档和写固定的结果档
为了方便对方使用,我用delphi、C++、C#都写了一个程式码档加载dll定义好函式
让对方可以直接呼叫程式不用再自己引入dll
delphi和C#都测试能正常运行,就C++问题解决不了
主要有三个问题:
1.如标题所说的VS使用debug模式下程式抓不到设定档,不过如果直接进资料夹点程式
是抓的到的
2.dll的程式执行完后测试用的主控台程式似乎就卡住了,一直没有执行到最后一行
system("pause");
3.因为dll我编译了x86和x64版,所以在C++中用#ifdef去抓程式要加载哪个dll
但是WIN32不管是在x86还是x64下都是true,目前是编译环境在x64时用#undef WIN32
让系统只抓到 _WIN64的条件,不知道是否有更好的解法?
喂入的资料(Input):

预期的正确结果(Expected Output):
dll回传讯息"计算完成"
错误结果(Wrong Output):
dll回传讯息"未检查到Data.csv"
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
作者: eye5002003 (下一夜)   2018-09-12 10:48:00
#elif defined(_WIN32) 就是else if啦,很多程式都用_WIN32来判断平台,所以x64一样抓的到,先抓_WIN64就解决了。system("pause")就是用来卡住的。debug模式抓的资料夹位置好像是专案根目录...吧

Links booklink

Contact Us: admin [ a t ] ucptt.com